#!/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. Android拨打接听电话自动免提

    权限: <uses-permission android:name="android.permission.READ_PHONE_STATE"/> <uses-p ...

  2. golang "text/template" 模板语法简明教程

    转自:https://www.cnblogs.com/Pynix/p/4154630.html [模板标签] 模板标签用"{{"和"}}"括起来   [注释] ...

  3. (转)Linux中设置服务自启动的三种方式

    有时候我们需要Linux系统在开机的时候自动加载某些脚本或系统服务 主要用三种方式进行这一操作: ln -s                       在/etc/rc.d/rc*.d目录中建立/e ...

  4. C++ Templates编程(模板参数)

    //file max.hpp template <typename T> //template<class T> inline T const& max (T cons ...

  5. mysql 中 myisam innodb 的区别

    区别: 1. InnoDB支持事务,MyISAM不支持,对于InnoDB每一条SQL语言都默认封装成事务,自动提交,这样会影响速度,所以最好把多条SQL语言放在begin和commit之间,组成一个事 ...

  6. Cloudera HUE大数据可视化分析

    下载版本 cdh版本 http://archive-primary.cloudera.com/cdh5/cdh/5/ 我们下载这个 这个是我下载好的 我们解压一下 下载需要的系统包 yum insta ...

  7. Java - 32 Java 多线程编程

    Java 多线程编程 Java给多线程编程提供了内置的支持.一个多线程程序包含两个或多个能并发运行的部分.程序的每一部分都称作一个线程,并且每个线程定义了一个独立的执行路径. 多线程是多任务的一种特别 ...

  8. MySQL数据库的高可用方案总结

    高可用架构对于互联网服务基本是标配,无论是应用服务还是数据库服务都需要做到高可用.虽然互联网服务号称7*24小时不间断服务,但多多少少有一些时候服务不可用,比如某些时候网页打不开,百度不能搜索或者无法 ...

  9. 《SDN软件定义网络从入门到精通》导论课

    http://mp.weixin.qq.com/s?__biz=MjM5MTM3MzIzMg==&mid=209513316&idx=1&sn=e5dbd9a2ccccb88d ...

  10. c#linq去除重复项并将相同数据的数量字段值相加

    这是执行前和执行后想要的效果 以下是用Sql语句实现的代码: select goodsno, goodsspec,SUM([count]) as count from goods group by g ...