sys 模块简介

import sys

命令行参数

sys.argv 显示传入的参数:

%%writefile print_args.py
import sys
print (sys.argv)
Writing print_args.py

运行这个程序:

%run print_args.py 1 foo
['print_args.py', '1', 'foo']

第一个参数 (sys.args[0]) 表示的始终是执行的文件名,然后依次显示传入的参数。

删除刚才生成的文件:

import os
os.remove('print_args.py')

异常消息

sys.exc_info() 可以显示 Exception 的信息,返回一个 (type, value, traceback) 组成的三元组,可以与 try/catch 块一起使用:

try:
    x = 1/0
except Exception:
    print (sys.exc_info())
(<class 'ZeroDivisionError'>, ZeroDivisionError('division by zero',), <traceback object at 0x7f08742c76c8>)

sys.exc_clear() 用于清除所有的异常消息。

标准输入输出流

  • sys.stdin
  • sys.stdout
  • sys.stderr

退出Python

sys.exit(arg=0) 用于退出 Python。0 或者 None 表示正常退出,其他值表示异常。

Python Path

sys.path 表示 Python 搜索模块的路径和查找顺序:

sys.path
['',
 '/home/jovyan/.virtualenvs/basenv/lib/python3.5/site-packages',
 '/home/jovyan/work/.localenv/lib/python35.zip',
 '/home/jovyan/work/.localenv/lib/python3.5',
 '/home/jovyan/work/.localenv/lib/python3.5/plat-x86_64-linux-gnu',
 '/home/jovyan/work/.localenv/lib/python3.5/lib-dynload',
 '/usr/lib/python3.5',
 '/usr/lib/python3.5/plat-x86_64-linux-gnu',
 '/home/jovyan/work/.localenv/lib/python3.5/site-packages',
 '/usr/local/lib/python3.5/dist-packages',
 '/usr/lib/python3/dist-packages',
 '/home/jovyan/.virtualenvs/basenv/lib/python3.5/site-packages/IPython/extensions',
 '/home/jovyan/.ipython']

在程序中可以修改,添加新的路径。

操作系统信息

sys.platform 显示当前操作系统信息:

  • Windows: win32
  • Mac OSX: darwin
  • Linux: linux2
sys.platform
'linux'

Python 版本信息

sys.version
'3.5.2 (default, Nov 23 2017, 16:37:01) \n[GCC 5.4.0 20160609]'
sys.version_info
sys.version_info(major=3, minor=5, micro=2, releaselevel='final', serial=0)