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 相关文章推荐
教你如何在Django 1.6中正确使用 Signal
Jun 22 Python
python操作mysql中文显示乱码的解决方法
Oct 11 Python
深入理解Javascript中的this关键字
Mar 27 Python
Python检测数据类型的方法总结
May 20 Python
java判断三位数的实例讲解
Jun 10 Python
连接pandas以及数组转pandas的方法
Jun 28 Python
基于python的Paxos算法实现
Jul 03 Python
python解析命令行参数的三种方法详解
Nov 29 Python
python plotly画柱状图代码实例
Dec 13 Python
使用PyTorch训练一个图像分类器实例
Jan 08 Python
python微信公众号开发简单流程实现
Mar 09 Python
Python基于当前时间批量创建文件
May 07 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
Excel数据导入Mysql数据库的实现代码
2008/06/05 PHP
如何修改Laravel中url()函数生成URL的根地址
2017/08/11 PHP
laravel-admin 中列表筛选方法
2019/10/03 PHP
Firefox div高度自适应
2009/04/28 Javascript
jQuery ready函数滥用分析
2011/02/16 Javascript
Jquery为a标签的href赋值实现代码
2013/05/03 Javascript
浅析jquery的作用与优势
2013/12/02 Javascript
js控制再次点击按钮之间的间隔时间可防止重复提交
2014/08/01 Javascript
node.js中的fs.linkSync方法使用说明
2014/12/15 Javascript
小巧强大的jquery layer弹窗弹层插件
2015/12/06 Javascript
如何消除inline-block属性带来的标签间间隙
2016/03/31 Javascript
完美解决JS文件页面加载时的阻塞问题
2016/12/18 Javascript
解决easyui日期时间框ie的兼容的问题
2018/03/01 Javascript
使用Vue中 v-for循环列表控制按钮隐藏显示功能
2019/04/23 Javascript
vue组件传值的实现方式小结【三种方式】
2020/02/05 Javascript
[58:37]Serenity vs Fnatic 2018国际邀请赛淘汰赛BO1 8.21
2018/08/22 DOTA
Python注释详解
2016/06/01 Python
python3爬虫之设计签名小程序
2018/06/19 Python
python遍历文件夹找出文件夹后缀为py的文件方法
2018/10/21 Python
python感知机实现代码
2019/01/18 Python
python三引号输出方法
2019/02/27 Python
python读取.mat文件的数据及实例代码
2019/07/12 Python
Python实现微信机器人的方法
2019/09/06 Python
浅谈css3中的前缀
2016/07/20 HTML / CSS
html5中localStorage本地存储的简单使用
2017/06/16 HTML / CSS
HTML5 语义化结构化规范化
2008/10/17 HTML / CSS
html5图片上传预览示例分享
2014/04/14 HTML / CSS
任课老师推荐信范文
2013/11/24 职场文书
日语专业个人求职信范文
2014/02/02 职场文书
音乐专业自荐信
2014/02/07 职场文书
监察建议书范文
2014/03/12 职场文书
2014年寒假社会实践活动心得体会
2014/04/07 职场文书
导师评语大全
2014/04/26 职场文书
2014年重阳节敬老活动方案
2014/09/16 职场文书
先进个人推荐材料
2014/12/29 职场文书
公司内部升职自荐信
2015/03/27 职场文书