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/python
import sys
print sys.argv
for 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.py
argument 1: hello
argument 2: world
argument 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
-c
hello
[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 分别表示标准输入输出,错误输出的文件对象.