码迷,mamicode.com
首页 > 编程语言 > 详细

python常用模块之sys模块与序列化模块

时间:2017-08-20 15:41:29      阅读:191      评论:0      收藏:0      [点我收藏+]

标签:imp   pat   load   port   python3   字典   访问   path   --   

  一、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模块与序列化模块

标签:imp   pat   load   port   python3   字典   访问   path   --   

原文地址:http://www.cnblogs.com/lianxuebin/p/7400063.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!