python常用模块之sys模块
sys模块
sys模块是与python解释器交互的模块,它功能非常多,很多我可能都用不上,所以简单小结了几个常用的方法。
参考:
sys常用方法:
(1) sys.argv: 实现从程序外部向程序传递参数
sys.argv是传递给Python脚本的命令行参数列表,其中args[0]总是python脚本名称。
# test_sys.py
# coding=utf-8 import sys print('传递进来的命令行参数: ', sys.argv)
# 在终端执行脚本文件, 输入 python3 test_sys.py a b c
传递进来的命令行参数: ['test_sys.py', 'a', 'b', 'c']
(2) sys.exit(n): 程序的退出
正常退出程序 n=0, 错误是1,当然n也可以是字符串,表示错误信息, 程序不正常退出时可以当做异常被捕获
>>> import sys >>> sys.exit('错误退出') 错误退出
上面直接退出了交互模式,并打印了错误信息。
>>> import sys >>> try: ... sys.exit(1) ... except SystemExit as e: ... print(e) # 捕获异常 ... 1
(3) sys.version: python的解释器版本信息等
一个字符串,其中包含Python解释器的版本号以及所使用的内部版本号和编译器的附加信息。
>>> sys.version '3.5.2 (default, Nov 12 2018, 13:43:14) \n[GCC 5.4.0 20160609]'
(4) sys.path: 获取模块搜索路径的字符串列表。
指定模块搜索路径的字符串列表, 从环境变量 PYTHONPATH初始化
>>> sys.path ['', '/usr/lib/python35.zip', '/usr/lib/python3.5', '/usr/lib/python3.5/plat-x86_64-linux-gnu', '/usr/lib/python3.5/lib-dynload', '/home/yscl/.local/lib/python3.5/site-packages', '/usr/local/lib/python3.5/dist-packages', '/usr/lib/python3/dist-packages']
(5) sys.platform:
获取当前系统平台
>>> sys.platform 'linux'
(6) sys.modules
这是一个将模块名称映射到已经加载的模块的全局字典。它在python启动时就已经加载了,每当导入一个新的模块,该字典就自动记录,第二次导入时就直接从字典里找,从而加快了速度。
(7) sys.getdefaultencoding() / sys.setdefaultencoding() / sys.getfilesystemencoding()
getdefaultencoding()是获取当前字符编码
setdefaultencoding()是设置默认编码, 在python2中经常出现字符编码的问题,统一用reload(sys); sys.setdefaultencoding('utf-8')就能解决问题
sys.getfilesystemencoding()是获取文件系统编码
>>> sys.getdefaultencoding() 'utf-8' >>> sys.getfilesystemencoding() 'utf-8'
(8) sys.stdin, sys.stdout, sys.stderr
它们分别对应标准输入、标准输出和错误输出
>>> sys.stdin.readline() # 标准输入读入一行 和input一样 hello 'hello\n' >>> sys.stdout.write('hello\n') # 标准输出,实际上print也是调用了该函数 hello 6
python解释器的提示和错误信息也是传到stderr输出的

浙公网安备 33010602011771号