python中sys模块是做什么用的


Posted in Python onAugust 16, 2020

python中的sys是提供了一系列有关python运行环境的变量和函数的模块,如sys.argv函数实现从程序外部向程序传递参数;sys.platform函数用于获取当前系统平台。

sys模块提供了一系列有关Python运行环境的变量和函数。

sys模块的常见函数列表

  • sys.argv: 实现从程序外部向程序传递参数。
  • sys.exit([arg]): 程序中间的退出,arg=0为正常退出。
  • sys.getdefaultencoding(): 获取系统当前编码,一般默认为ascii。
  • sys.setdefaultencoding(): 设置系统默认编码,执行dir(sys)时不会看到这个方法,在解释器中执行不通过,可以先执行reload(sys),在执行 setdefaultencoding('utf8'),此时将系统默认编码设置为utf8。(见设置系统默认编码 )
  • sys.getfilesystemencoding(): 获取文件系统使用编码方式,Windows下返回'mbcs',mac下返回'utf-8'.
  • sys.path: 获取指定模块搜索路径的字符串集合,可以将写好的模块放在得到的某个路径下,就可以在程序中import时正确找到。
  • sys.platform: 获取当前系统平台。
  • sys.stdin,sys.stdout,sys.stderr: stdin , stdout , 以及stderr 变量包含与标准I/O 流对应的流对象. 如果需要更好地控制输出,而print 不能满足你的要求, 它们就是你所需要的. 你也可以替换它们, 这时候你就可以重定向输出和输入到其它设备( device ), 或者以非标准的方式处理它们

内容扩展:

sys.argv

功能:在外部向程序内部传递参数

示例:sys.py

#!/usr/bin/env python

import sys
print sys.argv[0]
print sys.argv[1]

运行:

# python sys.py argv1
sys.py
argv1

自己动手尝试一下,领悟参数对应关系

sys.exit(n)

功能:执行到主程序末尾,解释器自动退出,但是如果需要中途退出程序,可以调用sys.exit函数,带有一个可选的整数参数返回给调用它的程序,表示你可以在主程序中捕获对sys.exit的调用。(0是正常退出,其他为异常)

示例:exit.py

#!/usr/bin/env python

import sys

def exitfunc(value):
  print value
  sys.exit(0)

print "hello"

try:
  sys.exit(1)
except SystemExit,value:
  exitfunc(value)

print "come?"

运行:

# python exit.py
hello

sys.path

功能:获取指定模块搜索路径的字符串集合,可以将写好的模块放在得到的某个路径下,就可以在程序中import时正确找到。

示例:

>>> import sys
>>> sys.path
['', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages/PILcompat', '/usr/lib/python2.7/dist-packages/gtk-2.0', '/usr/lib/python2.7/dist-packages/ubuntu-sso-client']

sys.path.append("自定义模块路径")

sys.modules

功能:sys.modules是一个全局字典,该字典是python启动后就加载在内存中。每当程序员导入新的模块,sys.modules将自动记录该模块。当第二次再导入该模块时,python会直接到字典中查找,从而加快了程序运行的速度。它拥有字典所拥有的一切方法。

示例:modules.py

#!/usr/bin/env python

import sys

print sys.modules.keys()

print sys.modules.values()

print sys.modules["os"]

运行:

python modules.py
['copy_reg', 'sre_compile', '_sre', 'encodings', 'site', '__builtin__',......

sys.stdin\stdout\stderr

功能:stdin , stdout , 以及stderr 变量包含与标准I/O 流对应的流对象. 如果需要更好地控制输出,而print 不能满足你的要求, 它们就是你所需要的. 你也可以替换它们, 这时候你就可以重定向输出和输入到其它设备( device ), 或者以非标准的方式处理它们

以上就是python中sys模块是做什么用的的详细内容,更多关于python中sys是什么模块的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
给Python入门者的一些编程建议
Jun 15 Python
Python之Scrapy爬虫框架安装及简单使用详解
Dec 22 Python
Python查看微信撤回消息代码
Jun 07 Python
python实现年会抽奖程序
Jan 22 Python
详解Django项目中模板标签及模板的继承与引用(网站中快速布置广告)
Mar 27 Python
python识别图像并提取文字的实现方法
Jun 28 Python
django框架CSRF防护原理与用法分析
Jul 22 Python
详解Python用三种方式统计词频的方法
Jul 29 Python
Python 解码Base64 得到码流格式文本实例
Jan 09 Python
在Django中自定义filter并在template中的使用详解
May 19 Python
如何解决.cuda()加载用时很长的问题
May 24 Python
Python import模块的缓存问题解决方案
Jun 02 Python
python3获取控制台输入的数据的具体实例
Aug 16 #Python
python在一个范围内取随机数的简单实例
Aug 16 #Python
python将数据插入数据库的代码分享
Aug 16 #Python
详解Python高阶函数
Aug 15 #Python
python 19个值得学习的编程技巧
Aug 15 #Python
解析python 类方法、对象方法、静态方法
Aug 15 #Python
浅谈python锁与死锁问题
Aug 14 #Python
You might like
客户端脚本中常常出现的一些问题和调试技巧
2007/01/09 Javascript
javascript+xml技术实现分页浏览
2008/07/27 Javascript
javascript 动态数据下的锚点错位问题解决方法
2008/12/24 Javascript
MooTools 1.2中的Drag.Move来实现拖放
2009/09/15 Javascript
Mootools 1.2教程 滑动效果(Slide)
2009/09/15 Javascript
JavaScript中函数声明优先于变量声明的实例分析
2012/03/01 Javascript
JavaScript 盒模型 尺寸深入理解
2012/12/31 Javascript
JS实现图片无间断滚动代码汇总
2014/07/30 Javascript
Web表单提交之disabled问题js解决方法
2015/01/13 Javascript
jquery实现平滑的二级下拉菜单效果
2015/08/26 Javascript
js实现图片放大和拖拽特效代码分享
2015/09/05 Javascript
js实现非常棒的弹出div
2016/10/06 Javascript
JavaScript浏览器对象模型BOM(BrowserObjectModel)实例详解
2016/11/29 Javascript
bootstrap laydate日期组件使用详解
2017/01/04 Javascript
JS实现商品筛选功能
2020/08/19 Javascript
Bootstrap 模态对话框只加载一次 remote 数据的完美解决办法
2017/07/09 Javascript
anime.js 实现带有描边动画效果的复选框(推荐)
2017/12/24 Javascript
详解Angular中实现自定义组件的双向绑定的两种方法
2018/11/23 Javascript
javascript合并两个数组最简单的实现方法
2019/09/14 Javascript
Vue 打包的静态文件不能直接运行的原因及解决办法
2020/11/19 Vue.js
WebStorm无法正确识别Vue3组合式API的解决方案
2021/02/18 Vue.js
对于Python异常处理慎用“except:pass”建议
2015/04/02 Python
在Django的模型中添加自定义方法的示例
2015/07/21 Python
Python元组拆包和具名元组解析实例详解
2018/03/26 Python
PHP实现发送和接收JSON请求
2018/06/07 Python
pyqt5使用按钮进行界面的跳转方法
2019/06/19 Python
Python爬虫 urllib2的使用方法详解
2019/09/23 Python
python实现与redis交互操作详解
2020/04/21 Python
Python如何对XML 解析
2020/06/28 Python
matplotlib.pyplot.plot()参数使用详解
2020/07/28 Python
OpenCV利用python来实现图像的直方图均衡化
2020/10/21 Python
红色康乃馨酒店:Red Carnation Hotels
2017/06/22 全球购物
日本乐天德国站:Rakuten.de
2019/05/16 全球购物
2015公司年度工作总结
2015/05/14 职场文书
幼儿园教师暑期培训心得体会
2016/01/09 职场文书
git stash(储藏)的用法总结
2022/06/25 Servers