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中的Numpy入门教程
Apr 26 Python
Python的ORM框架SQLObject入门实例
Apr 28 Python
wxPython定时器wx.Timer简单应用实例
Jun 03 Python
python dict.get()和dict['key']的区别详解
Jun 30 Python
django中的setting最佳配置小结
Nov 21 Python
利用python实现在微信群刷屏的方法
Feb 21 Python
检测python爬虫时是否代理ip伪装成功的方法
Jul 12 Python
python urllib爬虫模块使用解析
Sep 05 Python
深入了解如何基于Python读写Kafka
Dec 31 Python
Python AutoCAD 系统设置的实现方法
Apr 01 Python
在 Pycharm 安装使用black的方法详解
Apr 02 Python
Python3爬虫中Ajax的用法
Jul 10 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
DEDE采集大师官方留后门的删除办法
2011/01/08 PHP
PHP连接MSSQL2008/2005数据库(SQLSRV)配置实例
2014/10/22 PHP
Thinkphp开发--集成极光推送
2017/09/15 PHP
php 调用百度sms来发送短信的实现示例
2018/11/02 PHP
PHP单元测试框架PHPUnit用法详解
2019/01/23 PHP
javascript 面向对象编程 万物皆对象
2009/09/17 Javascript
javascript contains和compareDocumentPosition 方法来确定是否HTML节点间的关系
2010/02/04 Javascript
js获取URL的参数的方法(getQueryString)示例
2013/09/29 Javascript
jqGrid增加时--判断开始日期与结束日期(实例解析)
2013/11/08 Javascript
javascript自动给文本url地址增加链接的方法分享
2014/01/20 Javascript
Underscore源码分析
2015/12/30 Javascript
jquery调整表格行tr上下顺序实例讲解
2016/01/09 Javascript
本地Bootstrap文件字体图标引入却无法显示问题的解决方法
2020/04/18 Javascript
JS中用try catch对代码运行的性能影响分析
2016/12/26 Javascript
js控制按钮,防止频繁点击响应的实例
2017/02/15 Javascript
Vue.js在数组中插入重复数据的实现代码
2017/11/17 Javascript
bootstrap 弹出框modal添加垂直方向滚轴效果
2018/07/09 Javascript
150行代码带你实现微信小程序中的数据侦听
2019/05/17 Javascript
微信小程序 高德地图路线规划实现过程详解
2019/08/05 Javascript
Node.js创建一个Express服务的方法详解
2020/01/06 Javascript
jQuery实现异步上传一个或多个文件
2020/08/17 jQuery
jQuery中getJSON跨域原理的深入讲解
2020/09/02 jQuery
Python3 加密(hashlib和hmac)模块的实现
2017/11/23 Python
python pandas 组内排序、单组排序、标号的实例
2018/04/12 Python
Python使用Selenium爬取淘宝异步加载的数据方法
2018/12/17 Python
基于Python制作一副扑克牌过程详解
2020/10/19 Python
网易微博Web App用HTML5开发的过程介绍
2012/06/13 HTML / CSS
魔声耳机官方网站:Monster是世界第一品牌的高性能耳机
2016/10/26 全球购物
Fairyseason:为个人和批发商提供女装和配件
2017/03/01 全球购物
潘多拉珠宝美国官方网站:Pandora US
2020/06/18 全球购物
应用服务器有那些
2012/01/19 面试题
《守株待兔》教学反思
2014/03/01 职场文书
理财投资建议书
2014/03/12 职场文书
村支部书记群众路线对照检查材料思想汇报
2014/10/08 职场文书
帝企鹅日记观后感
2015/06/10 职场文书
八一建军节主持词
2015/07/01 职场文书