sys 模块简介
In [1]:
import sys
命令行参数
sys.argv
显示传入的参数:
In [2]:
%%writefile print_args.py
import sys
print sys.argv
Writing print_args.py
运行这个程序:
In [3]:
%run print_args.py 1 foo
['print_args.py', '1', 'foo']
第一个参数 (sys.args[0]
) 表示的始终是执行的文件名,然后依次显示传入的参数。
删除刚才生成的文件:
In [4]:
import os
os.remove('print_args.py')
异常消息
sys.exc_info()
可以显示 Exception
的信息,返回一个 (type, value, traceback)
组成的三元组,可以与 try/catch
块一起使用:
In [5]:
try:
x = 1/0
except Exception:
print sys.exc_info()
(<type 'exceptions.ZeroDivisionError'>, ZeroDivisionError('integer division or modulo by zero',), <traceback object at 0x0000000003C6FA08>)
sys.exc_clear()
用于清除所有的异常消息。
标准输入输出流
- sys.stdin
- sys.stdout
- sys.stderr
退出Python
sys.exit(arg=0)
用于退出 Python。0
或者 None
表示正常退出,其他值表示异常。
Python Path
sys.path
表示 Python 搜索模块的路径和查找顺序:
In [6]:
sys.path
Out[6]:
['',
'C:\\Anaconda\\python27.zip',
'C:\\Anaconda\\DLLs',
'C:\\Anaconda\\lib',
'C:\\Anaconda\\lib\\plat-win',
'C:\\Anaconda\\lib\\lib-tk',
'C:\\Anaconda',
'C:\\Anaconda\\lib\\site-packages',
'C:\\Anaconda\\lib\\site-packages\\Sphinx-1.3.1-py2.7.egg',
'C:\\Anaconda\\lib\\site-packages\\cryptography-0.9.1-py2.7-win-amd64.egg',
'C:\\Anaconda\\lib\\site-packages\\win32',
'C:\\Anaconda\\lib\\site-packages\\win32\\lib',
'C:\\Anaconda\\lib\\site-packages\\Pythonwin',
'C:\\Anaconda\\lib\\site-packages\\setuptools-17.1.1-py2.7.egg',
'C:\\Anaconda\\lib\\site-packages\\IPython\\extensions']
在程序中可以修改,添加新的路径。
操作系统信息
sys.platform
显示当前操作系统信息:
Windows: win32
Mac OSX: darwin
Linux: linux2
In [7]:
sys.platform
Out[7]:
'win32'
返回 Windows
操作系统的版本:
In [8]:
sys.getwindowsversion()
Out[8]:
sys.getwindowsversion(major=6, minor=2, build=9200, platform=2, service_pack='')
标准库中有 planform
模块提供更详细的信息。
Python 版本信息
In [9]:
sys.version
Out[9]:
'2.7.10 |Anaconda 2.3.0 (64-bit)| (default, May 28 2015, 16:44:52) [MSC v.1500 64 bit (AMD64)]'
In [10]:
sys.version_info
Out[10]:
sys.version_info(major=2, minor=7, micro=10, releaselevel='final', serial=0)