#!/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

python模块sys的更多相关文章

  1. python模块(sys)

    SYS模块 sys.argv # 命令行参数List,第一个元素是程序本身路径 sys.exit(n) # 退出程序,正常退出时exit(0) sys.version # 获取Python解释程序的版 ...

  2. Python模块-sys模块

    sys.version        获取Python解释程序的版本信息 >>> sys.version '2.7.12 (default, Dec 4 2017, 14:50:18 ...

  3. python模块----sys模块 (系统相关的参数和函数)

    pprint 模块:它给我们提供了一个方法 pprint() 该方法可以用来对打印的数据做简单的格式化 sys模块+pprint模块 标准库网址(sys):https://docs.python.or ...

  4. python 模块之-sys

    python 模块 sys import sys sys.argv       # 参数,第一个参数是脚本的文件明,自定义参数为数组的第二个   sys.argv[1] sys.version   # ...

  5. Python常用模块sys,os,time,random功能与用法,新手备学。

    这篇文章主要介绍了Python常用模块sys,os,time,random功能与用法,结合实例形式分析了Python模块sys,os,time,random功能.原理.相关模块函数.使用技巧与操作注意 ...

  6. python之sys模块详解

    python之sys模块详解 sys模块功能多,我们这里介绍一些比较实用的功能,相信你会喜欢的,和我一起走进python的模块吧! sys模块的常见函数列表 sys.argv: 实现从程序外部向程序传 ...

  7. python学习笔记27(python中sys模块的使用)

    sys.argv           命令行参数List,第一个元素是程序本身路径 sys.modules.keys() 返回所有已经导入的模块列表 sys.exc_info()     获取当前正在 ...

  8. python之sys模块

    38.python的sys模块: 用于提供对Python解释器相关的操作: 1 2 3 4 5 6 7 8 9 sys.argv           命令行参数List,第一个元素是程序本身路径 sy ...

  9. Python模块 - os , sys.shutil

    os 模块是与操作系统交互的一个接口 os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os.chdir("dirname") 改变当前脚本工作目录: ...

随机推荐

  1. ArcEngine 创建空间参考设置默认域

    ISpatialReferenceFactory3 spatialReferenceFactory = new SpatialReferenceEnvironmentClass(); outSR = ...

  2. Replicating a 2D dynamic array

    转自:https://forums.unrealengine.com/community/community-content-tools-and-tutorials/105-saxonrahs-tut ...

  3. 逻辑运算符&逻辑短路

    (1)and 逻辑与 全真则真,一假则假 print(True and True) #True print(False and True) #False print(False and False) ...

  4. Ribbon Workbench The plug-in execution failed because the Sandbox Client encountered an error during initialization

    使用 Ribbon Workbench打开解决方案时,出现The plug-in execution failed because the Sandbox Client encountered an ...

  5. 一个windows计划任务的Nginx日志自动截断的批处理命令

    net stop nginx taskkill /im nginx.exe /f cd E:\nginx e: set NO=%Date:~0,4%%Date:~5,2%%Date:~8,2% set ...

  6. 图片Alpha预乘的作用[转]

    Premultiplied Alpha 这个概念做游戏开发的人都不会不知道.Xcode 的工程选项里有一项 Compress PNG Files,会对 PNG 进行 Premultiplied Alp ...

  7. RxJava学习;数据转换、线程切换;

    Observable(被观察者,发射器)发送数据: just:发送单个的数据: Observable.just("cui","chen","bo&qu ...

  8. html跳页面传值

    从a.html跳转到b.html并且把a.html的值name传入b.html  在a.html页面,url路径后面带参数,参数与url之间用?隔开 window.location.href = &q ...

  9. 1-hadoop安装、ssh、节点退役与服役

    1.准备 四台虚拟机 ①卸载openjdk ②安装jdk 2. 配置静态ip: ip : 每个机器在internet上的唯一标识 子网掩码: 必须结合IP地址一起使用,将某个IP地址划分成网络地址和主 ...

  10. Http Request Method:options

    在调试前端界面时突然发现每个请求都执行了两次,点进去看详情,才发现第一个请求是options