python常用模块之sys模块与序列化模块
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python常用模块之sys模块与序列化模块相关的知识,希望对你有一定的参考价值。
一、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)
以上是关于python常用模块之sys模块与序列化模块的主要内容,如果未能解决你的问题,请参考以下文章
python常用模块(模块和包的解释,time模块,sys模块,random模块,os模块,json和pickle序列化模块)
Python基础(12)_python模块之sys模块logging模块序列化json模块pickle模块shelve模块