Python常见内置模块
datetime模块
- 与time模块类似,都是可以对时间进行一些相关的操作
- py文件名称尽量不要与模块名冲突(内置、第三方)
import datetime
tes = datetime.datetime.today()
print(tes) # 2022-07-15 15:36:27.904993
tes1 = datetime.date.today()
print(tes1) # 2022-07-15
"""
如何区分时间模块中的年月日、时分秒
datetime 年月日 时分秒
date 年月日
"""
test2 = datetime.timedelta(days=6)
print(tes1 + test2) # 2022-07-21
print(tes1 - test2) # 2022-07-09
"""
timedelta后面的括号内可以添加很多参数,也可以通过换算进行获取,比如年、月
"""
print(datetime.datetime.now()) # 2022-07-15 15:50:23.004384
print(datetime.datetime.utcnow()) # 2022-07-15 07:50:23.004384
assign = datetime.datetime(2018, 1, 1, 00, 00)
print('时空穿梭:', assign) # 时空穿梭: 2018-01-01 00:00:00
os模块
- os模块是与操作系统交互的一个接口
import os
# 1.创建目录
# os.mkdir(r'home') # 可以创建单层目录,无法创建多级目录
# os.makedirs(r'tmp/dev/sdb/src1') # 创建多级目录
# os.makedirs(r'etc') # makedirs也可以创建单级目录
# 2.删除目录
# os.rmdir(r'etc') # 删除单级目录,无法删除有其他数据的目录 只能删除空白文件夹
# os.removedirs(r'tmp/dev/sdb/src1') # 删除多级目录,针对有数据的目录同样无法删除 由内而外删除空目录,直到有数据的目录为止
# 3.列举指定路径下的文件名称(文件、目录)
# print(os.listdir()) # ['.idea', 'datatime.py', 'home', 'os模块.py', '__pycache__']
# print(os.listdir(r'D://')) # 查看当前盘符内所有的文件夹
# 4.重命名文件、删除文件
# os.rename(r'userinfo.txt', r'my_info.txt') # 重命名文件
# os.remove(r'my_info.txt') # 删除文件
# 5.获取当前所在的路径
# print(os.getcwd()) # D:/python/study/day21 绝对路径
# os.chdir(r'..') # 切换路径
# print(os.getcwd()) # D:/python/study
# 6.与程序启动文件相关
# print(os.path.abspath(__file__)) # 获取当前文件的绝对路径
# print(os.path.dirname(__file__)) # 获取当前文件所在的目录路径
# 7.判断路径是否存在(文件、目录)
# print(os.path.exists(r'home')) # True
# print(os.path.exists(r'test')) # False
# print(os.path.exists(r'datatime.py')) # True
# print(os.path.exists(r'userinfo.txt')) # False
# print(os.path.isdir(r'home')) # True 用于判断路径是否是目录(文件夹)
# print(os.path.isdir(r'datatime.py')) # False
# print(os.path.isfile(r'home')) # False 用于判断路径是否是文件
# print(os.path.isfile('datatime.py')) # True
# 8.拼接路径
# relative_path = 'userinfo.txt'
# absolute_path = r'D:/python/study/day21/tmp'
# print(absolute_path + relative_path)
"""
涉及到路径拼接,不要使用+号 用join方法
"""
# res = os.path.join(absolute_path, relative_path)
# print(res) # D:/python/study/day21/tmp/userinfo.txt
# ps:join方法可以自动识别当前所在的操作系统并自动切换正确的分隔符 windows用/ mac用/
# 9.获取文件大小 bytes
# print(os.path.getsize(r'os模块.py')) # 2715
# print(os.path.getsize(r'userinfo.txt')) # 260
sys模块
- sys模块是与python解释器交互的一个接口
# sys.argv 命令行参数List,第一个元素是程序本身路径
# sys.exit(n) 退出程序,正常退出时exit(0),错误退出sys.exit(1)
# sys.version 获取Python解释程序的版本信息
# sys.path 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
# sys.platform 返回操作系统平台名称
import sys
# print(sys.path) # 结果是个列表
# print(sys.version) # 3.8.6 (tags/v3.8.6:db45529, Sep 23 2020, 15:52:53) [MSC v.1927 64 bit (AMD64)] 查看解释器版本信息
# print(sys.platform) # 查看当前平台 win32
res = sys.argv
if len(res) == 3:
username = res[1]
password = res[2]
if username == 'zhangsan' and password == '666':
print('you can perform')
else:
print('username and password error')
else:
print('please input username and password')
json模块
json模块也称之为序列化模块
json模块是不同编程语言之间数据交互必备的模块(处理措施)
不同编程语言之间数据类型存在差异,无法直接进行交互
json格式的数据应该是什么
数据基于网络传输肯定是二进制 那么在python中只有字符串可以调用encode方法转成二进制数据 所以json格式的数据也属于字符串
json格式的数据有一个非常明显的特征
首先肯定是字符串 其次引号是标志性的双引号
# dic = {'name': 'zhangsan', 'pwd': 666}
"""
需求:将上述字典中的保存到文件中,并且读取出来之后还是字典
"""
# with open(r'dic.txt', 'w', encoding='utf8') as f:
# f.write(str(dic))
# with open(r'dic.txt', 'r', encoding='utf8') as f:
# data = f.read()
# print(data, type(data)) # {'name': 'zhangsan', 'pwd': 666} <class 'str'>
# import json # 序列化 将其他数据类型转换为json格式字符串
# userinfo = json.dumps(dic)
# print(userinfo, type(userinfo)) # {"name": "zhangsan", "pwd": 666} <class 'str'>
# dic1 = {"name": "lisi", "pwd": 777}
# print(dic1) # {'name': 'lisi', 'pwd': 777}
# userinfo1 = json.loads(userinfo) # 反序列化 将json格式字符串转换为对应的编程语言中的数据类型
# print(userinfo1, type(userinfo1)) # {'name': 'zhangsan', 'pwd': 666} <class 'dict'>
# import json
# with open(r'dic.txt', 'w', encoding='utf8') as f:
# f.write(json.dumps(dic)) # {"name": "zhangsan", "pwd": 666}
# json.dump(dic, f) # 直接将字典写入文件,json会自动完成格式转换
# with open(r'dic.txt', 'r', encoding='utf8') as f:
# data = f.read()
# res = json.loads(data)
# print(res, type(res)) # {'name': 'zhangsan', 'pwd': 666} <class 'dict'>
# res = json.load(f)
# print(res, type(res)) # {'name': 'zhangsan', 'pwd': 666} <class 'dict'>
"""
dumps() 将其他数据类型转换成json格式字符串
loads() 将json格式字符串转化成对应的数据类型
dump() 将其他数据数据以json格式字符串写入文件
load() 将文件中json格式字符串读取出来并转换成对应的数据类型
"""
原创文章,作者:kepupublish,如若转载,请注明出处:https://blog.ytso.com/274609.html