python模块sys

#!/bin/env python
#-*- encoding=utf8 -*-
import sys
if __name__=="__main__":
# 在解释器启动后, argv 列表包含了传递给脚本的所有参数, 列表的第一个元素为脚本自身的名称.
    print sys.argv  

执行命令: D:python_test>python test_path.py
输出结果:['test_path.py']

执行命令: D:python_test>python test_path.py 9090
输出结果:['test_path.py', '9090']
#!/bin/env python
#-*- encoding=utf8 -*-

# 使用sys模块操作模块搜索路径
if __name__=="__main__":

    import sys
    # path 列表是一个由目录名构成的列表
    # Python 从中查找扩展模块( Python 源模块, 编译模块,或者二进制扩展).
    # path是一个普通的列表,可以在程序中对其进行操作
    print sys.path

    sys.path.insert(0,"samples")  # 将路径插入到下标0的位置
    sys.path.append("Root_path")  # 程序中会用到指定路径插入到搜索路径列表中
    print sys.path

    sys.path = []  # 删除path中的所有路径
    print sys.path

sys.builtin_module_names:  #查找内建模块是否存在

#!/bin/env python
#-*- encoding=utf8 -*-

import sys

def dump(module):
    print module, "=>",
    if module in sys.builtin_module_names:  #查找内建模块是否存在
        print "<BUILTIN>"
    else:
        module = __import__(module)         #非内建模块输出模块路径
        print module.__file__

if __name__=="__main__":
    dump("sys")
    dump("os")

使用sys模块查找已导入的模块

modules 字典包含所有加载的模块. import 语句在从磁盘导入内容之前会先检查这个字典.

Python 在处理你的脚本之前就已经导入了很多模块.

#!/bin/env python
#-*- encoding=utf8 -*-

import sys

if __name__=="__main__":

    print sys.modules.keys()

使用sys模块获得当前平台

#!/bin/env python
#-*- encoding=utf8 -*-

import sys

if __name__=="__main__":

    print sys.platform

输出: win3

使用sys模块退出程序

import sys
sys.exit(1)

# 使用exit函数时,会已抛出异常的方式来结束程序

注意 sys.exit 并不是立即退出. 而是引发一个 SystemExit 异常. 这意味着你可以在主程序中捕获对 sys.exit 的调用

捕获sys.exit调用

如果准备在退出前自己清理一些东西(比如删除临时文件), 你可以配置一个 "退出处理函数"(exit handler), 它将在程序退出的时候自动被调用

#!/bin/env python
#-*- encoding=utf8 -*-

import sys

if __name__=="__main__":

    print "hello"
    try:
        sys.exit(1)
    except SystemExit:   # 捕获退出的异常
        print "SystemExit...."
        pass                    # 捕获后不做任何操作
    print "there"

输出:hello
SystemExit....
there

另一种捕获sys.exit调用的方法

#!/bin/env python
#-*- encoding=utf8 -*-

import sys

# 退出前执行的函数
def exitfunction():
    print "get exit function"

if __name__=="__main__":

    sys.exitfunc = exitfunction  # 设置捕获时调用的函数
    print "hello"

    sys.exit(1)   # 退出自动调用exitfunc()后,程序依然退出
    print "end.." # 不会被print

输出: hello
get exit function
原文地址:https://www.cnblogs.com/wind-wang/p/5821340.html