一、sys模块
sys模块是一个与python解释器交互的模块,常用方法如下
sys.argv:用于程序运行时从程序外部接收参数,如果不传参数则显示的是程序的文件名
import sys name=sys.argv[1] password=sys.argv[2] if name==‘jly‘ and password==‘123‘: print(‘程序继续执行‘) else: sys.exit() -------------------------------------------------------------------------------------- 控制台执行结果 G:\学习\Python项目\first>python3 G:\学习\Python项目\first\August\day21\t21.py jly 123 程序继续执行
sys.exit(n):用于退出python程序,默认正常退出返回数0,错误返回1,可以指定退出时返回的数字用来判断退出原因
sys.version:获取python解释器版本
sys.size:获取python支持的整数的最大位数
sys.path:用于获取python模块的搜索路径
sys.platform:获取操作系统平台名称
二、序列化模块
序列化就是把字典和列表等转换为字符串形式的过程
2.1、json模块
json是最常用的用于序列化的模块,因为它序列化的结果是所有语言通用的,json提供了四种方法分别是loads、dumps、load、dump
dumps:用于将字典,列表序列化为字符串并返回
loads:用于将序列化后的字符串转换为字典和列表
dic={‘name‘:‘alex‘,‘age‘:23} dic_str=json.dumps(dic) dic_dic=json.loads(dic_str) print(dic_str,type(dic_str)) print(dic_dic,type(dic_dic)) -------------------------------------------------------------------------------------- {"name": "alex", "age": 23} <class ‘str‘> {‘name‘: ‘alex‘, ‘age‘: 23} <class ‘dict‘>
dump:dump作用和dumps类似,但是它不是直接返回结果,而是把序列化后的结果写到指定的文件中
load:从指定的文件中把序列化的内容读出来并转换成字典或列表
f=open(‘json‘,‘w‘) dic={‘name‘:‘alex‘,‘age‘:23} json.dump(dic,f) f.close() f=open(‘json‘) dic=json.load(f) f.close()
2.2、pickle模块
用法和json一样,只是序列化的结果是bytes类型的数据只有python可以使用
2.3、shelve模块
shelve也是用于序列化的模块,它只有一个open方法,通过key访问数据
f=shelve.open(‘shelve_file‘) f[‘k2‘]={‘int‘:10, ‘float‘:9.5, ‘string‘:‘Sample data‘} f.close() f=shelve.open(‘shelve_file‘) ext=f[‘k2‘] f.close() print(ext)
因为shelve同时只允许一个线程对它进行写操作,所以我们在打开shelve文件时需要设置为只读模式,以避免影响其他人对它进行写操作。
shelve默认不会记录对原有key值的修改,比如f[‘k2][‘new‘]=‘this was not here before‘这个,默认是不会写入文件的,如果需要将修改写入文件则需要将writeback设置为True,如f=shelve.open(‘shelve_file‘,writeback=True)
时间: 2024-10-12 14:43:58