sys模块的常见函数列表
-
sys.argv: 实现从程序外部向程序传递参数。
-
sys.exit([arg]): 程序中间的退出,arg=0为正常退出。
-
sys.path: 获取指定模块搜索路径的字符串集合,可以将写好的模块放在得到的某个路径下,就可以在程序中import时正确找到。
-
sys.platform: 获取当前系统平台。
-
sys.modules:该变量是一个字典,存储了已经导入的模块
-
sys.version:获取Python解释程序的版本信息
-
sys.getrecursionlimit :获取python默认支持的递归数量
-
sys.getdefaultencoding(): 获取系统当前编码,一般默认为ascii。
-
sys.setdefaultencoding(): 设置系统默认编码,执行dir(sys)时不会看到这个方法,在解释器中执行不通过,可以先执行reload(sys),在执行 setdefaultencoding(‘utf8’),此时将系统默认编码设置为utf8。(见设置系统默认编码 )
-
sys.getfilesystemencoding(): 获取文件系统使用编码方式,Windows下返回’mbcs’,mac下返回’utf-8’.
sys.argv
功能:在外部向程序内部传递参数
#!/usr/bin/env python
import sys
print sys.argv[0]
print sys.argv[1]
运行
>>>python sys.py argv1
sys.py
argv1
sys.exit([arg])
功能:执行到主程序末尾,解释器自动退出,但是如果需要中途退出程序,可以调用sys.exit函数,带有一个可选的整数参数返回给调用它的程序,表示你可以在主程序中捕获对sys.exit的调用。(0是正常退出,其他为异常)
#!/usr/bin/env python
import sys
def exitfunc(value):
print value #打印异常传输过来的value
sys.exit(0) #正常退出
print ("hello")
try:
sys.exit(1) #此处为异常,所以会跳转到异常处理,并将value传到异常
except SystemExit,value:
exitfunc(value) #将异常数值传到函数中
print ("come?")
运行
>>>python exit.py
hello
1
sys.path
功能:获取指定模块搜索路径的字符串集合,可以将写好的模块放在得到的某个路径下,就可以在程序中import时正确找到。(python寻找模块的路径)
- 可以在代码中动态修改sys.path列表中的元素,已达到成功导入某个模块的目的。
>>> import sys
>>> sys.path
['', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages/PILcompat', '/usr/lib/python2.7/dist-packages/gtk-2.0', '/usr/lib/python2.7/dist-packages/ubuntu-sso-client']
- sys.path.append(“自定义模块路径”)
#添加系统环境变量
sys.path.append(BASE_DIR)
print(sys.path)
sys.modules
功能:该变量是一个字典,存储了已经导入的模块
import sys,os
print(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', '_bootlocale', '_locale', 'encodings.gbk', '_codecs_cn', '_multibytecodec', 'sysconfig', 'encodings.cp437', 'sitecustomize'])
sys.platform
功能:获取当前执行环境的平台,如win32表示是Windows系统,linux2表示是linux平台
print(sys.platform)
-------------结果:
win32
-------------结果:
[root@xiaoma /root]
>>>python mcw.py
linux2
sys.version
功能:获取Python解释程序的版本信息
import sys
print(sys.version)
--------------结果:
3.6.8 (tags/v3.6.8:3c6b436a57, Dec 23 2018, 23:31:17) [MSC v.1916 32 bit (Intel)]
import sys
print(sys.version)
--------------结果:
[root@xiaoma /root]
>>>python mcw.py
2.7.5 (default, Nov 6 2016, 00:28:07)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-11)]
sys.getrecursionlimit
功能:获取系统默认递归的最大层数
import sys
print(sys.getrecursionlimit())
sys.getdefaultencoding()
功能:获取系统默认编码
import sys
print(sys.getdefaultencoding())
sys.getfilesystemencoding()
功能:获取文件系统使用编码方式
import sys
print(sys.getfilesystemencoding())