python常用模块之sys模块与种类化模块

python常用模块之sys模块

1.sys.argv[]:命令行参数List,第一个因素是程序本身

# 写一个简单的python程序,代码如下:
#!/usr/bin/python
#coding=utf8
"""
Author: xiaoyafei
Created Time : 2018-05-09 14:57:36
File Name: argvTest.py
"""
import sys
print(sys.argv[0])
print(sys.argv[1])
print(sys.argv[2])

# 去执行这个程序
[root@host-10-200-137-195 tmp]# python3 argvTest.py old_str new_str
argvTest.py  # 第0个是函数本身
old_str  # 第一个
new_str  # 第二个

2.sys.exit():退出程序,符合规律退出是sys.exit(0)

In [1]: import sys

In [2]: sys.exit("bye")
An exception has occurred, use %tb to see the full traceback.

SystemExit: bye  # 会打印个bye然后退出

/usr/local/lib/python3.6/site-packages/IPython/core/interactiveshell.py:2918: UserWarning: To exit: use 'exit', 'quit', or Ctrl-D.
  warn("To exit: use 'exit', 'quit', or Ctrl-D.", stacklevel=1)

In [2]: sys.exit(0)
An exception has occurred, use %tb to see the full traceback.

SystemExit: 0

/usr/local/lib/python3.6/site-packages/IPython/core/interactiveshell.py:2918: UserWarning: To exit: use 'exit', 'quit', or Ctrl-D.
  warn("To exit: use 'exit', 'quit', or Ctrl-D.", stacklevel=1)

3.sys.version():获取python解释程序的版本消息

In [3]: sys.version
Out[3]: '3.6.4 (default, Mar 22 2018, 13:40:22) \n[GCC 4.8.5 20150623 (Red Hat 4.8.5-16)]'

4.sys.maxsize:最大的Int值

In [9]: sys.maxsize
Out[9]: 9223372036854775807

5.sys.path:再次回到模块的探究路线,初阶化时利用PYTHONPATH景况变量的值

In [10]: sys.path  # 既然是列表那就可以使用append()进行追加
Out[10]: 
['',
 '/usr/local/bin',
 '/usr/local/lib/python36.zip',
 '/usr/local/lib/python3.6',
 '/usr/local/lib/python3.6/lib-dynload',
 '/usr/local/lib/python3.6/site-packages',
 '/usr/local/lib/python3.6/site-packages/pip-1.5.4-py3.6.egg',
 '/usr/local/lib/python3.6/site-packages/IPython/extensions',
 '/root/.ipython']

6.sys.platform:重临操作系统平台名称

In [11]: sys.platform
Out[11]: 'linux'

7.sys.stdout.write():标准输出

In [3]: sys.stdout.write('please:')
Out[3]: please:7

8.sys.stdin.readline()[:-1]:标准输入

In [4]: sys.stdin.readline()[:-1]  # 等待用户输入,直到\n,也可以使用read函数(会一直让用户输入)
abc  
Out[4]: 'abc'

9.sys.getrecursionlimit():获取最大递归深度

In [6]: sys.getrecursionlimit()
Out[6]: 3000

10.“:修改递归最大深度

In [7]: sys.setrecursionlimit(1500)

In [8]: sys.getrecursionlimit()
Out[8]: 1500

11.sys.getdefaultencoding():获取解释器暗中同意编码

In [9]: sys.getdefaultencoding()  # Linux默认是UTF-8
Out[9]: 'utf-8'

12.sys.getfilesystemencoding():获取内部存储器数据存在文件的暗许编码

In [10]: sys.getfilesystemencoding()  # 
Out[10]: 'utf-8'  # 指的是操作系统里的文件系统

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
程序继续执行 

shelve暗中认可不会记录对原本key值的改换,比如f[‘k2][‘new’]=’this was not here before’这么些,暗中认可是不会写入文件的,如若急需将修改写入文件则需求将writeback设置为True,如f=shelve.open(‘shelve_file’,writeback=True)

sys.version:获取python解释器版本

  json是最常用的用于体系化的模块,因为它类别化的结果是享有语言通用的,json提供了各类方法分别是loads、dumps、load、dump

sys.size:获取python协理的整数的最大位数

 

二、种类化模块

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)

sys.exit(n):用于退出python程序,默许平常退出再次来到数0,错误重临一,能够钦命退出时回来的数字用来决断退出原因

sys.platform:获取操作系统平台名称

  dumps:用于将字典,列表种类化为字符串并重返

系列化正是把字典和列表等转移为字符串情势的长河

 

  用法和json一样,只是种类化的结果是bytes类型的数据唯有python能够使用

2.2、pickle模块

sys.path:用于获取python模块的探求路线

  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'>

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() 

sys模块是2个与python解释器交互的模块,常用方法如下

一、sys模块

因为shelve同时只允许二个线程对它进行写操作,所以大家在开垦shelve文件时必要安装为只读方式,避防止影响其余人对它进行写操作。

dump:dump功用和dumps类似,然而它不是平素回到结果,而是把连串化后的结果写到钦赐的文件中

2.1、json模块

2.3、shelve模块

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图