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)

时间: 2024-10-12 14:43:58

python常用模块之sys模块与序列化模块的相关文章

python常用模块(模块和包的解释,time模块,sys模块,random模块,os模块,json和pickle序列化模块)

1.1模块 什么是模块: 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少,在python中.一个.py文件就称为一个模块(Module) 使用模块的好处: 提高了代码的可维护性. 其次,编写代码不必从零开始.当一个模块编写完毕,就可以被其他地方引用.我们编写程序的时候也经常引用其他模块,包括python的内置的模块和第三方模块. 包(package

25.Python序列化模块,hashlib模块, configparser模块,logging模块,异常处理

一.序列化模块 什么叫序列化——将原本的字典.列表等内容转换成一个字符串的过程就叫做序列化. 比如,我们在python代码中计算的一个数据需要给另外一段程序使用,那我们怎么给?现在我们能想到的方法就是存在文件里,然后另一个python程序再从文件里读出来.但是我们都知道,对于文件来说是没有字典这个概念的,所以我们只能将数据转换成字典放到文件中.你一定会问,将字典转换成一个字符串很简单,就是str(dic)就可以办到了,为什么我们还要学习序列化模块呢?没错序列化的过程就是从dic 变成str(di

python__序列化模块

什么叫序列化--将原本的字典.列表等内容转换成一个字符串的过程就叫做序列化. 比如,我们在python代码中计算的一个数据需要给另外一段程序使用,那我们怎么给?现在我们能想到的方法就是存在文件里,然后另一个python程序再从文件里读出来.但是我们都知道,对于文件来说是没有字典这个概念的,所以我们只能将数据转换成字典放到文件中.你一定会问,将字典转换成一个字符串很简单,就是str(dic)就可以办到了,为什么我们还要学习序列化模块呢?没错序列化的过程就是从dic 变成str(dic)的过程.现在

Python之常用模块(re,时间,random,os,sys,序列化模块)(Day20)

一.时间模块 #常用方法 1.time.sleep(secs) (线程)推迟指定的时间运行.单位为秒. 2.time.time() 获取当前时间戳 在Python中表示时间的三种方式:时间戳,元组(struct_time), 格式化的时间字符串[时间戳为计算机能够识别的时间:时间字符串是人能够识别的时间:元组则是用来操作时间的] #导入时间模块 >>>import time #时间戳 >>>time.time() 1500875844.800804 #时间字符串 >

python全栈开发【第十篇】Python常用模块二(时间、random、os、sys和序列化)

一.time模块 表示时间的三种方式: 时间戳:数字(计算机能认识的) 时间字符串:t='2012-12-12' 结构化时间:time.struct_time(tm_year=2017, tm_mon=8, tm_mday=8, tm_hour=8, tm_min=4, tm_sec=32, tm_wday=1, tm_yday=220, tm_isdst=0)像这样的就是结构化时间 #time模块的常用方法及三种时间之间的转换 import time # 对象:对象.方法 # --------

python 常用模块 time random os模块 sys模块 json &amp; pickle shelve模块 xml模块 configparser hashlib subprocess logging re正则

python 常用模块 time random os模块 sys模块 json & pickle shelve模块 xml模块 configparser hashlib  subprocess logging re正则 转自老男孩老师Yuan:http://www.cnblogs.com/yuanchenqi/articles/5732581.html 模块&包(* * * * *) 模块(modue)的概念: 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,

Python基础(12)_python模块之sys模块、logging模块、序列化json模块、pickle模块、shelve模块

5.sys模块 sys.argv 命令行参数List,第一个元素是程序本身路径 sys.exit(n) 退出程序,正常退出时exit(0) sys.version 获取Python解释程序的版本信息 sys.maxint 最大的Int值 sys.path 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值 sys.platform 返回操作系统平台名称 5.1 使用sys.argv进行登录判断,跳过 i/o阻塞 #使用sys.argv进行登录判断,跳过 i/o阻塞 import s

python - 常用模块 - 序列化相关模块

把数据序列化可以更加方便的在程序之间传输 在python中,常用json和pickle两个模块来对数据序列化: json模块: json,用于字符串 和 python数据类型间进行转换 Json 模块提供了四个功能:dumps.dump.loads.load json.dump() 将数据通过特殊的形式转换为所有程序语言都认识的字符串,并写入文件 json.dumps() 将数据通过特殊的形式转换为所有程序语言都认识的字符串 json.dump和json.dumps很不同,json.dump主要

常用模块---sys&amp;logging&amp;序列化模块(json&amp;pickle)

sys 模块 sys.argv 命令行参数List,第一个元素是程序本身路径,通常用来避免io 阻塞 print('欢迎进入') info=sys.argv if info[index('-u')+1] == 'mona' and info[index('-p')+1] == '123': print('login successful') sys.exit(n) 退出程序,正常退出时exit(0) count=1 while count<10: if count == 8: sys.exit(