python基础19 模块3

172 阅读4分钟

datetime模块

  • 与time时间类似
import datetime
res = datetime.datetime.today()
res1 = datetime.date.today()
print(res)
print(res1)
print(res.year)
      
      # timedate里面可以放置多种参数,没有的时间可以通过换算得到

res2 = datetime.timedelta(days = 3)
print(res1-res2)
print(datetime.datetime.utcnow())

os模块主要与操作系统交互

import os


1.创建目录         mkdir/makedirs
    os.mkdir(r'aaa')
    os.mkdir(r'aaa\c')
       创建一个单层的目录,目录存在报错,不能创多层
    os.mkdir(r'aaa\cc\d')
    os.makedirs(r'bbb\ccc\ddd')
    os.makedirs(r'ccc')
       创建一个多层的目录,目录存在报错,可以创单层

2.删除目录,文件    rmdir/removedirs/remove
    os.rmdir(r'ddd')
    os.rmdir(r'aaa\c')
       删除一个内部没有东西的单层目录
    os.removedirs(r'bbb\ccc\ddd')
       删除一个内部没有东西的多层目录 由内而外
    os.remove(r'a.txt')
    os.remove(r'D:\pycharmProjects\day24\os模块\ccc\a.txt')
       删除当前执行文件所在根目录的指定文件

3. 列举指定路径的文件名称   listdir
    print(os.listdir())    # ['aaa', 'os.py']
       括号内不填写,展示当前工作路径下的文件与文件夹,以列表的形式展现
    print(os.listdir(r'day24'))
       括号内填写,要填入目录的绝对路径,才会以列表的形式展示,其他格式路径会报错

4.重命名目录和文件         rename
    os.rename(r'aaa', r'ccc')
    os.rename(r'os模块', r'os')
    os.rename(r'os.py', r'ooss.py')
       可以对当前工作路径目录,文件重命名。

5.获取路径               getcwd获取路径,chdir改变目录
    print(os.getcwd())
       当前工作的路径,得到的是绝对路径
    os.chdir(r'..')
    os.mkdir(r'123')
    print(os.getcwd())
       在相对路径创建新目录,改变当前工作目录到新目录
    os.chdir(r'D:\pycharmProjects\day24\123')
    print(os.getcwd())
       改变当前工作目录到指定的路径,获取新目录的绝对路径
    print(os.path.abspath(__file__))   # 获取当前文件的绝对路径
    print(os.path.dirname(__file__))
       获取当前文件所在目录的绝对路径

6.判断路径是否存在         exists/isdir/isfile
    print(os.path.exists(r'D:\pycharmProjects\day24\123')) # Ture
    print(os.path.exists(r'ccc'))          # Ture
    print(os.path.exists(r'222'))          # False
       括号里可以放入绝对路径,或者同一级的文件名,目录名,没有的会输出False
    print(os.path.isdir(r'D:\pycharmProjects\day24\123'))  # Ture
    print(os.path.isdir(r'ccc'))            # Ture
    print(os.path.isdir(r'ooss.py'))        # False
       isdir只能用于获取输入的路径是不是目录(文件夹)
    print(os.path.isfile(r'D:\pycharmProjects\day24\123')) # False
    print(os.path.isfile(r'ccc'))           # False
    print(os.path.isfile(r'ooss.py'))       # Ture

7.路径的拼接            join
    absolute_path ='D:\pycharmProjects\day24\os模块'
    relative_path ='ooss.py'
    res = os.path.join(absolute_path, relative_path)
    print(res)
       路径拼接勿用+,建议使用os模块的join方法。长路径放前面,文件,或文件名放后面
       * join方法可以自动识别当前操作系统并切换正确的分隔符。windows用\ mac用/
    8.获取文件的大小        bytes
    print(os.path.getsize(r'大小.txt'))
       获取到的是文件字节大小

sys模块

  • 主要与python解释器交互
import sys

# print(sys.path)
   # 当前执行文件的系统环境变量,结果统合为一个列表
# print(sys.version)
   # 查看python解释器信息
# print(sys.platform)
   # 查看当前平台的操作系统

   # 命令行执行当前文件必须要提供用户名和密码 否则不准执行
res = sys.argv
if len(res) == 3:
    username = res[1]
    password = res[2]
    if username == 'jason' and password == '123':
        print('您可以正在执行该文件')
    else:
        print('用户名或密码错误')

json模块(序列化模块)

  • json与编程语言的交互
    image.png
    #1.json模块是不同编程语言交互的必备模块
    #2.数据基于网络传输所以是二进制,在python中只有字符串可以调用encode方法
        #转为二进制数据,所以json格式的数据也属于字符串
    #3.json格式是标志性双引号的字符串

d = {'name': 'jason', 'pwd': 123}
    将上述字典保存到文件中 并且将来读取出来之后还是字典
    1.我们学过将字典文件的读写,但是仅以此方式写入取出来的虽然样貌是字典但是类型却是字符串。
    2.所以我们可以通过json模块来解决


import json

d = {'name': 'jason', 'pwd': 123}
res = json.dumps(d)            # 序列化,将其他数据类型转换为json格式
print(res, type(res))
            # 转为json格式是双引号,只有json可以{"name": "jason", "pwd": 123}
res1 = json.loads(res)         # 反序列化,将json格式字符串转换为编程语言中对应的类型
print(res1,type(res1))

dumps()     # 将其他数据类型转换成json格式字符串
loads()     # 将json格式字符串转化成对应的数据类型

d = {'name': 'jason', 'pwd': 123}
import json
with open(r'b.txt','w',encoding ='utf8')as f:
    f.write(json.dumps(d))
with open(r'b.txt','r', encoding='utf8') as f :
    data = f.read()
    res =json.loads(data)
    print(res,type(res))

# dump()      # 将其他数据类型以json格式字符串写入文件
# load()      # 将文件中json格式字符串读取出来并转换成对应的数据类型

import json
with open(r'b.txt', 'w', encoding='utf8') as f:
    json.dump(d, f)
with open(r'b.txt', 'r', encoding='utf8') as f:
    res = json.load(f)
    print(res,type(res))

json的实参

    import json
    import os
    base_dir = r'D:\pycharmProjects\day24\os模块'
    username = input('username>>>').strip()
    username_list = os.listdir(base_dir)
    if username in username_list:
        file_path = os.listdir(base_dir)
        with open(file_path, 'r', encoding='utf8') as f:
            data = json.load(f)
        print(data,type(data))


例1:
    import json
    import os
    print(os.listdir(r'D:\pycharmProjects\day24\os模块'))
    base_dir = os.path.dirname(__file__)
    db_path = os.path.join(base_dir,'')
    if not os.path.exists(db_path):
        os.mkdir(db_path)
    username = input('username>>>:').strip()
    password = input('password>>>:').strip()
    user_dict = {'username': username,
                 'password': password,
                 'balance': 15000,
                 'shop_car':[]
                 }
    file_path = os.path.join(db_path, '%s'%username)
    with open(file_path,'w',encoding='utf8') as f:
        json.dump(user_dict, f)
  • 输出结果 image.png