您的位置:首页 > 编程语言 > Python开发

python之sys模块常用方法

2017-10-23 15:47 295 查看
sys是与系统相关的模块,提供了一些有关运行环境的方法。

sys.argv

sys.argv用来获取当前运行程序的参数列表,其中

sys.argv[0]表示当前程序名

sys.argv[1]表示第一个参数

sys.argv[2]表示第二个参数

以此类推,例子如下:

# encoding: utf-8
# filename: argv.py
import sys
print(sys.argv[0],sys.argv[1],sys.argv[2])


执行程序

E:\python argv.py argv1 argv2
argv.py argv1 argv2


argv.platform

得到运行的操作系统环境,如win32表示是Windows 32bit操作系统,linux2表示是linux平台。

>>> import sys
>>> sys.platform # 属性,而不是方法
>>>'win32'


sys.stdin, sys.stdout, sys.stderr

分别表示标准输入输出,错误输出的文件对象。

print实质上就是sys.stdout.write,print在打印的字符串后面加上回车,然后调用sys.stdout.write。

sys.stderr同样,不过输出的是错误的文件对象,当你的程序崩溃时,打印出调试信息,信息前往stderr管道,同样不为你添加回车。

sys.stderr和sys.stdout都是类文件对象,然而他们是只写的,只有write方法,没有read方法。

sys.exit

sys.exit(0)表示正常退出,sys.exit(i), i=1,2,3…表示异常退出。

# encoding: utf-8
import sys
print("hello")
sys.exit(0)     # 程序退出
print ("world") # 不会被 print

hello


在程序中可以捕获该异常

# encoding: utf-8
import sys
print ("hello")

try:
sys.exit(1)
except SystemExit:
print('SystemExit exit 1')

print("world")


运行结果:

hello
SystemExit exit 1
world


sys.path

path是一个由目录名构成的列表, Python 从中查找可扩展模块,启动 Python 时,这个列表从根据内建规则, PYTHONPATH 环境变量的内容, 以及注册表( Windows 系统)等进行初始化.

>>> sys.path
['', 'D:\\python\\python36.zip', 'D:\\python\\DLLs', 'D:\\python\\lib', 'D:\\python', 'D:\\python\\lib\\site-packages']


有时候我们需要手动添加模块或者删除python模块搜索路径。

sys.path.insert(0, "samples")  #将路径插入到path,[0]中
import sample

sys.path = []  #删除path中所有路径
import random


也可以用sys.path.append(“module’ path”)来添加自定义的模块路径.

- sys.builtin_module_names

sys.builtin_module_names列表包含 Python 解释器中所有内建模块的名称。

>>> sys.builtin_module_names
('_ast', '_bisect', '_blake2', '_codecs', '_codecs_cn', '_codecs_hk', '_codecs_iso2022', '_codecs_jp', '_codecs_kr', '_codecs_tw', '_collections', '_csv', '_datetime', '_functools', '_heapq', '_imp', '_io', '_json', '_locale', '_lsprof', '_md5', '_multibytecodec', '_opcode', '_operator', '_pickle', '_random', '_sha1', '_sha256', '_sha3', '_sha512', '_signal', '_sre', '_stat', '_string', '_struct', '_symtable', '_thread', '_tracemalloc', '_warnings', '_weakref', '_winapi', 'array', 'atexit', 'audioop', 'binascii', 'builtins', 'cmath', 'errno', 'faulthandler', 'gc', 'itertools', 'marshal', 'math', 'mmap', 'msvcrt', 'nt', 'parser', 'sys', 'time', 'winreg', 'xxsubtype', 'zipimport', 'zlib')


使用sys.modules.keys()查看已导入的模块。

modules 字典包含所有加载的模块. import 语句在从磁盘导入内容之前会先检查这个字典,Python 在处理你的脚本之前就已经
4000
导入了很多模块.

>>> sys.modules.keys()
dict_keys(['builtins', 'sys', '_frozen_importlib', '_imp', '_warnings', '_thread', '_weakref', '_frozen_importlib_external', '_io', 'marshal', 'nt', 'winreg', 'zipimport', 'encodings', 'codecs', '_codecs', 'encodings.aliases', 'encodings.utf_8', '_signal', '__main__', 'encodings.latin_1', 'io', 'abc', '_weakrefset', 'site', 'os', 'errno', 'stat', '_stat', 'ntpath', 'genericpath', 'os.path', '_collections_abc', '_sitebuiltins', 'sysconfig', 'atexit'])
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python sys