内置模块

image

内置模块

  • datetime模块
import datetime  # 时间模块
import time

res = datetime.datetime.today()  # 2022-07-15 14:33:58.806285
res1 = datetime.date.today()  # 2022-07-15
res2 = datetime.datetime.now()  # 与today相同,ucnow东零区时间
print(res, res2)
print(res1)
print(res.year)  # 只想取部分可以通过点的方式 2022 7
print(res.month)
print(res.day)
print(res.hour)
print(res.weekday())  # 0到6
'''
date 年月日
datetime 年月日 时分秒
'''
t1 = datetime.timedelta(days=3)  # 三天的时间3 days, 0:00:00
print(t1)
print(res + t1)  # 先获取当前时间然后加三天的时间也就是三天之后的时间2022-07-18 14:38:39.581186
print(res - t1)  # 先获取当前时间然后加三天的时间也就是三天之前的时间2022-07-12 14:38:39.581186
time.sleep(3)  # 程序休眠
print(123)
'''
timedelta()括号内可以填很多参数没有的时间可以换算出来
'''
冷门补充
c = datetime.datetime(2014,3,3,12,30,15)  # 年月日中间用逗号隔开即可
print('指定时间:',c)

  • os模块(非常重要)
import os

1.#创建单级目录与删除
os.mkdir(r'k')
os.mkdir(r'log用于存储程序日志的文件夹类似于监控/log.log')  # 通过撬棍进入文件夹内部创建文件
os.rmdir(r'/Users/ltianhao/PycharmProjects/day24/aaa/bbb/ccc')
os.rmdir(r'/Users/ltianhao/PycharmProjects/day24/aaa')  # 内部有文件不能删除


2.#创建多级目录与删除
os.makedirs(r'aaa/bbb/ccc')
os.removedirs(r'aaa')  # 内部有文件也无法删除
os.removedirs(r'aaa/bbb')  # 内部没有文件依次往外删除最底层没有文件往上跳由内而外递归删除

3.# 列举指定路径下的文件名称包含文件夹 当前文件下一级的不算)
print(os.listdir())
print(os.listdir('/Users/ltianhao/PycharmProjects/day24/core用于存储核心逻辑的文件夹'))  # 可以指定路径

4.#删除文件夹与删除文件的区别
os.rename(r'log用于存储程序日志的文件夹类似于监控/log.log','log用于存储程序日志的文件夹类似于监控/log.txt')  # 可以通过代码改文件夹内部的文件名
os.remove(r'log用于存储程序日志的文件夹类似于监控/log.txt')  # 删除内部文件

5.#获取当前工作的路径绝对路径
print(os.getcwd())
print(os.path.abspath(__file__))  # 获取当前文件的绝对路径
print(os.path.dirname(__file__))  # 获取当前文件所在的目录路径  括号内方__file__


6.#可以通过该方式切换路径
os.chdir(r'..')
os.removedirs(r'josn专属模块')  # 通过切换路径删除空目录
print(os.getcwd())
os.removedirs(r'core用于存储核心逻辑的文件夹/k')


7.# 判断当前文件,目录中有没有该路径
print(os.path.exists(r'bin用于存储启动程序文件夹'))
print(os.path.exists(r'aaa'))


8.#判断是否是文件夹
print(os.path.isdir(r'bin用于存储启动程序文件夹'))  # 判断路径是否是文件夹
print(os.path.isfile(r'bin用于存储启动程序文件夹'))  # 判断路径是否是文件


9.#拼接路径
res_pathh = '/Users/ltianhao/PycharmProjects/day24/bin用于存储启动程序文件夹'
absolute_path = 'start.py'
print(os.path.join(res_pathh, absolute_path))  # 此方法自动识别操作系统
#/Users/ltianhao/PycharmProjects/day24/bin用于存储启动程序文件夹/start.py

10.#获取文件大小
print(os.path.getsize(r'run.py')) 

import os
import sys

print(os.path.dirname(__file__))  # 文件所在目录绝对路径
res = os.path.dirname(os.path.dirname(__file__))  #文件所在目录上一层路径
print(res)
sys.path.append(res)
from core import src
src.func()

image

image

sys模块

import sys
# 1.#查看解释器的信息
# print(sys.path)
# 2.#查看当前解释的信息
# print(sys.version)
# 3.#查看当前平台
# print(sys.platform)
4.
res = sys.argv

'''需求命令行执行当前文件必须提供用户名和密码否则不能执行'''
if len(res) == 3:
    user_name = res[1]
    password = res[2]
    if user_name == 'jason' and password == '123':
        print('正在执行该文件')
    else:
        raise Exception('暂无执行权限')   # 使用异常捕获
else:
        print('请填写密码')  # 什么都不输入就提示填写密码
print(res)

image

json模块(重要)


#josn模块
# josn模块称为序列化模块
# josn模块是不同编程语言之间数据交互必备的模块(处理措施)
# josn格式的数据应该是?
# 数据基于网络传输是二进制,在python中只有字符串是可以调用encode方法转成二进制数据,所以json数据也属于字符串

import json
d = {'name':'jason','age':18}
print(json.dumps(d))  # {"name": "jason", "age": 18}  序列化
with open(r'requirements.txt','w',encoding='utf8') as f:
    f.write(str(d))
with open(r'requirements.txt','r',encoding='utf8') as f:
    print(f.read())  # {'name': 'jason', 'age': 18}
with open(r'requirements.txt','a',encoding='utf8' ) as f:
    f.write('\n'+json.dumps(d))
with open(r'requirements.txt','r',encoding='utf8') as f:
    data = f.readlines()[1]
    res = json.loads(data)  # {'name': 'jason', 'age': 18} <class 'dict'>反序列化将json格式转成对应的编程语言中的数据类型
    print(res,type(res))
    
#直接将json格式字符串写进文件,将文件中josn字符串读取出来并转换成对应的数据类型
with open(r'requirements.txt','w',encoding='utf8') as f:
    json.dump(d,f)
with open(r'requirements.txt','r',encoding='utf8') as f:
    res = json.load(f)
    print(res,type(res))

image

posted @ 2022-07-16 12:05  懒羊羊A  阅读(55)  评论(0)    收藏  举报