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虚拟环境Virtualenv使用教程
May 18 Python
Python2与python3中 for 循环语句基础与实例分析
Nov 20 Python
python微信跳一跳系列之色块轮廓定位棋盘
Feb 26 Python
在cmd命令行里进入和退出Python程序的方法
May 12 Python
Jupyter中直接显示Matplotlib的图形方法
May 24 Python
python读取LMDB中图像的方法
Jul 02 Python
使用Python获取网段IP个数以及地址清单的方法
Nov 01 Python
Python类的继承用法示例
Jan 31 Python
pandas.read_csv参数详解(小结)
Jun 21 Python
Django框架表单操作实例分析
Nov 04 Python
python实现while循环打印星星的四种形状
Nov 23 Python
python Protobuf定义消息类型知识点讲解
Mar 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
杏林同学录(六)
2006/10/09 PHP
提高PHP编程效率 引入缓存机制提升性能
2010/02/15 PHP
PHP常用代码大全(新手入门必备)
2010/06/29 PHP
php 无法加载mcrypt.dll的解决办法
2013/04/03 PHP
php全局变量和类配合使用深刻理解
2013/06/05 PHP
PHP SOCKET编程详解
2015/05/22 PHP
iis 7下安装laravel 5.4环境的方法教程
2017/06/14 PHP
JavaScript 拖拉缩放效果
2008/12/10 Javascript
javascript 闭包疑问
2010/12/30 Javascript
一个背景云变换js特效 鼠标移动背景云变化
2012/12/28 Javascript
如何动态加载外部Javascript文件
2015/12/02 Javascript
莱鸟介绍javascript onclick事件
2016/01/06 Javascript
iScroll.js 使用方法参考
2016/05/16 Javascript
微信小程序图片宽100%显示并且不变形
2017/06/21 Javascript
AngularJS实现select的ng-options功能示例
2017/07/12 Javascript
vue开发调试神器vue-devtools使用详解
2017/07/13 Javascript
如何在微信小程序中使用骨架屏的步骤
2020/06/12 Javascript
浅谈在vue-cli3项目中解决动态引入图片img404的问题
2020/08/04 Javascript
Python字符串的encode与decode研究心得乱码问题解决方法
2009/03/23 Python
python学习之面向对象【入门初级篇】
2017/01/21 Python
解读! Python在人工智能中的作用
2017/11/14 Python
Numpy中stack(),hstack(),vstack()函数用法介绍及实例
2018/01/09 Python
python Celery定时任务的示例
2018/03/13 Python
Python实现爬虫抓取与读写、追加到excel文件操作示例
2018/06/27 Python
Python+pandas计算数据相关系数的实例
2018/07/03 Python
TFRecord文件查看包含的所有Features代码
2020/02/17 Python
python爬虫请求头设置代码
2020/07/28 Python
CSS3与动画有关的属性transition、animation、transform对比(史上最全版)
2017/08/18 HTML / CSS
CSS3 Calc实现滚动条出现页面不跳动问题
2017/09/14 HTML / CSS
个人自荐信
2013/12/05 职场文书
小学科学教学反思
2014/01/26 职场文书
竞选劳动委员演讲稿
2014/04/28 职场文书
上课玩手机的检讨书
2014/10/01 职场文书
安全教育观后感
2015/06/17 职场文书
基于Go Int转string几种方式性能测试
2021/04/28 Golang
Windows server 2012 配置Telnet以及用法详解
2022/04/28 Servers