sys模块

来源:互联网 发布:淘宝的拍卖玉器可信吗 编辑:程序博客网 时间:2024/05/20 01:08

python中sys模块是由c语言实现的(python-2.6.2-src\Python\sysmodule.c)内置模块,sys模块提供常量、函数和python解释器方法等信息。

1.命令行参数sys.argv

argv是一个命令行参数list,argv[0]指的就是脚本路径

[root@localhost python]# cat argv.py#!/usr/bin/pythonimport sysprint sys.argvfor i in range(len(sys.argv)):        print "argument %d: %s" % (i, sys.argv[i])[root@localhost python]# ./argv.py['./argv.py']argument 0: ./argv.py[root@localhost python]# ./argv.py hello world !['./argv.py', 'hello', 'world', '!']argument 0: ./argv.pyargument 1: helloargument 2: worldargument 3: ![root@localhost python]#

如果脚本通过python -c来执行,那么argv[0]指的就是-c

[root@localhost python]# python -c "import sys; print sys.argv[0]; print sys.argv[1]" hello-chello[root@localhost python]#

2.sys.builtin_module_names、sys.modules.keys()

通过sys.builtin_module_names可以看到python所有的内置模块。

>>> sys.builtin_module_names('__builtin__', '__main__', '_ast', '_codecs', '_sre', '_symtable', '_warnings', 'errno', 'exceptions', 'gc', 'imp', 'marshal', 'posix', 'pwd', 'signal', 'sys', 'thread', 'zipimport')

sys.modules.keys()只能列出所有import的模块

>>> sys.modules.keys()['cStringIO', 'copy_reg', 'sre_compile', '_sre', 'encodings', 'site', '__builtin__', 'subprocess', 'syslog', 'ABRTUtils', 'gc', '__main__', 'encodings.encodings', 'select', 'abc', 'posixpath', 'errno', 'binascii', 'encodings.codecs', 'sre_constants', 're', '_abcoll', 'types', '_codecs', 'new', '_struct', '_warnings', 'fcntl', 'genericpath', 'stat', 'zipimport', 'encodings.__builtin__', 'warnings', 'UserDict', 'encodings.utf_8', 'sys', 'codecs', 'readline', 'paste', 'os.path', 'struct', 'sitecustomize', 'pickle', 'signal', 'traceback', 'linecache', 'posix', 'encodings.aliases', 'time', 'exceptions', 'sre_parse', 'abrt_exception_handler', 'os', 'marshal']

3.sys.byteorder

网络字节序,big-endian or little endian

4.sys.exit(n) 

退出程序,正常退出时exit(0)

5.sys.maxint         最大的Int值

6.sys.modules        modules为dictionary,存储系统导入的模块

7.sys.path        模块的搜索路径,初始化时使用PYTHONPATH环境变量的值

8.sys.platform       返回操作系统平台名称

9.sys.version sys.version_info      python版本信息

>>>sys.version_info

(2, 4, 3, 'final', 0) 'final'表示最终,也有'candidate'表示候选,表示版本级别,是否有后继的发行

10.sys.stdout sys.stdin sys.stderr   分别表示标准输入输出,错误输出的文件对象.