sys 模块
sys --系统相关的参数和函数
常用方法
1、sys.argv --获取命令行参数,返回值是List,第一个元素是程序本身
#!/usr/bin/python3
# -*- coding: UTF-8 -*-
import sys
for i in sys.argv:
print(i)
结果:
linux-ko5m:/home/python/test # ./test.py 1 2 3
./test.py
1
2
3
2、sys.exit(n) --程序退出,如果是正常退出是sys.exit(0)
#!/usr/bin/python3
# -*- coding: UTF-8 -*-
import sys
print('Hello')
sys.exit(0)
print('World')
结果:
linux-ko5m:/home/python/test # ./test.py
Hello
3、sys.path --返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
>>> import sys
>>> sys.path
['', '/usr/lib/python34.zip', '/usr/lib64/python3.4', '/usr/lib64/python3.4/plat-linux', '/usr/lib64/python3.4/lib-dynload', '/usr/lib64/python3.4/site-packages', '/usr/lib64/python3.4/_import_failed', '/usr/lib/python3.4/site-packages']
>>>
4、sys.modules.keys() --返回所有已经导入的模块列表
>>> import sys
>>> sys.modules.keys()
dict_keys(['_sitebuiltins', 'atexit', '_stat', '_codecs', 'errno', 'encodings.aliases', '_bootlocale', '_frozen_importlib', 'zipimport', 'io', '_thread', '_sysconfigdata', 'marshal', '_collections_abc', 'site', '_warnings', 'abc', 'builtins', 'rlcompleter', 'sysconfig', '_weakrefset', 'genericpath', 'posixpath', 'posix', 'sys', '_locale', 'stat', 'readline', '_imp', 'signal', 'encodings', '_weakref', '__main__', 'codecs', 'encodings.latin_1', '_io', 'os.path', 'os', 'encodings.utf_8'])
5、sys.version --获取Python解释程序的版本信息
>>> import sys
>>> sys.version
'3.5.3 (default, Sep 27 2018, 17:25:39) \n[GCC 6.3.0 20170516]'
6、sys.exc_info() --获取当前正在处理的异常类,exc_type、exc_value、exc_traceback当前处理的异常详细信息
>>> sys.exc_info()
(None, None, None)
7、sys.maxsize --最大的Int值
>>> import sys
>>> sys.maxsize
9223372036854775807
8、sys.maxunicode --最大的Unicode值
>>> sys.maxunicode
1114111
9、sys.platform --返回操作系统平台名称
>>> import sys
>>> sys.platform
'linux'
10、sys.stdout --标准输出
#!/usr/bin/python3
# -*- coding: UTF-8 -*-
import sys
f = open('log.txt', 'a')
__console__ = sys.stdout
sys.stdout = f
print('Hello World!')
sys.stdout = __console__
print('Hello Console')
结果:
linux-ko5m:/home/python/test # ./test.py
Hello Console
linux-ko5m:/home/python/test # cat log.txt
Hello World!
11、sys.stdin --标准输入
#!/usr/bin/python3
# -*- coding: UTF-8 -*-
import sys
name = sys.stdin.readline()
print('输出:', name)
结果:
linux-ko5m:/home/python/test # ./test.py
root
输出: root
12、sys.stderr --错误输出
#!/usr/bin/python3
# -*- coding: UTF-8 -*-
import sys
f = open('error.log', 'a')
sys.stderr = f
int('aaa')
结果:
linux-ko5m:/home/python/test # ./test.py
linux-ko5m:/home/python/test # cat error.log
Traceback (most recent call last):
File "./test.py", line 6, in
int('aaa')
ValueError: invalid literal for int() with base 10: 'aaa'