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使用pil进行图像处理(等比例压缩、裁剪)实例代码
Dec 11 Python
Request的中断和ErrorHandler实例解析
Feb 12 Python
Python Numpy 数组的初始化和基本操作
Mar 13 Python
Python中的groupby分组功能的实例代码
Jul 11 Python
Python线程下使用锁的技巧分享
Sep 13 Python
Python实现监控Nginx配置文件的不同并发送邮件报警功能示例
Feb 26 Python
Python OpenCV中的resize()函数的使用
Jun 20 Python
详解Django将秒转换为xx天xx时xx分
Sep 27 Python
python GUI库图形界面开发之PyQt5动态(可拖动控件大小)布局控件QSplitter详细使用方法与实例
Mar 06 Python
python不同系统中打开方法
Jun 23 Python
python 深度学习中的4种激活函数
Sep 18 Python
python入门教程之基本算术运算符
Nov 13 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
PHP 5.0 Pear安装方法
2006/12/06 PHP
php URL编码解码函数代码
2009/03/10 PHP
php简单对象与数组的转换函数代码(php多层数组和对象的转换)
2011/05/18 PHP
浅析php中三个等号(===)和两个等号(==)的区别
2013/08/06 PHP
php操作redis中的hash和zset类型数据的方法和代码例子
2014/07/05 PHP
PHP中通过getopt解析GNU C风格命令行选项
2019/11/18 PHP
JQuery 表单中textarea字数限制实现代码
2009/12/07 Javascript
js实现全屏漂浮广告移入光标停止移动
2013/12/02 Javascript
JavaScript伸缩的菜单简单示例
2013/12/03 Javascript
jQuery绑定事件监听bind和移除事件监听unbind用法实例详解
2016/01/19 Javascript
JavaScript 不支持 indexof 该如何解决
2016/03/30 Javascript
js replace(a,b)之替换字符串中所有指定字符的方法
2016/08/17 Javascript
使用JSON作为函数的参数的优缺点
2016/10/27 Javascript
BootStrap表单时间选择器详解
2017/05/09 Javascript
JSON对象转化为字符串详解
2017/08/11 Javascript
JS实现非首屏图片延迟加载的示例
2018/01/06 Javascript
Vue 项目中遇到的跨域问题及解决方法(后台php)
2018/03/28 Javascript
详解koa2学习中使用 async 、await、promise解决异步的问题
2018/11/13 Javascript
js实现unicode码字符串与utf8字节数据互转详解
2019/03/21 Javascript
jQuery实现朋友圈查看图片
2020/09/11 jQuery
关于JavaScript中异步/等待的用法与理解
2020/11/18 Javascript
改进Django中的表单的简单方法
2015/07/17 Python
在MAC上搭建python数据分析开发环境
2016/01/26 Python
python构建自定义回调函数详解
2017/06/20 Python
python使用rpc框架gRPC的方法
2018/08/24 Python
不归路系列:Python入门之旅-一定要注意缩进!!!(推荐)
2019/04/16 Python
python中的列表与元组的使用
2019/08/08 Python
Numpy将二维数组添加到空数组的实现
2019/12/05 Python
新手入门学习python Numpy基础操作
2020/03/02 Python
英国知名奢侈品包包品牌:Milli Millu
2016/12/22 全球购物
怎么样写好简历中的自我评价
2013/10/25 职场文书
决定成败的关键——创业计划书
2014/01/24 职场文书
不假外出检讨书
2014/01/27 职场文书
舞蹈专业求职信
2014/06/13 职场文书
python实现进度条的多种实现
2021/04/29 Python
三种方式清除vue路由跳转router-link的历史记录
2022/04/10 Vue.js