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 for 文件指定行读写操作详解
Dec 29 Python
Python实现的爬取百度贴吧图片功能完整示例
May 10 Python
ERLANG和PYTHON互通实现过程详解
Jul 05 Python
pip指定python位置安装软件包的方法
Jul 12 Python
django的csrf实现过程详解
Jul 26 Python
Windows系统Python直接调用C++ DLL的方法
Aug 01 Python
PyQt 图解Qt Designer工具的使用方法
Aug 06 Python
python编写微信公众号首图思路详解
Dec 13 Python
python GUI库图形界面开发之PyQt5动态(可拖动控件大小)布局控件QSplitter详细使用方法与实例
Mar 06 Python
python3 sorted 如何实现自定义排序标准
Mar 12 Python
pycharm开发一个简单界面和通用mvc模板(操作方法图解)
May 27 Python
python如何操作mysql
Aug 17 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 eval函数用法总结
2012/10/31 PHP
PHP的Laravel框架中使用消息队列queue及异步队列的方法
2016/03/21 PHP
老生常谈PHP面向对象之注册表模式
2017/05/26 PHP
swoole和websocket简单聊天室开发
2017/11/18 PHP
php实现socket推送技术的示例
2017/12/20 PHP
PHP实现的微信公众号扫码模拟登录功能示例
2019/05/30 PHP
PHP进阶学习之类的自动加载机制原理分析
2019/06/18 PHP
laravel框架中间件简单使用方法示例
2020/01/25 PHP
在页面上点击任一链接时触发一个事件的代码
2007/04/07 Javascript
仅用[]()+!等符号就足以实现几乎任意Javascript代码
2010/03/01 Javascript
JQuery触发radio或checkbox的change事件
2012/12/18 Javascript
JS中令人发指的valueOf方法介绍
2013/02/22 Javascript
jquery增加时编辑jqGrid(实例代码)
2013/11/08 Javascript
JavaScript—window对象使用示例
2013/12/09 Javascript
javascript中Number对象的toString()方法分析
2014/12/20 Javascript
jQuery通过控制节点实现仅在前台通过get方法完成参数传递
2015/02/02 Javascript
使用控制台破解百小度一个月只准改一次名字
2015/08/13 Javascript
IE6兼容透明背景图片及解决方案
2015/08/19 Javascript
用NODE.JS中的流编写工具是要注意的事项
2016/03/01 Javascript
去除字符串左右两边的空格(实现代码)
2016/05/12 Javascript
jQuery中用on绑定事件时需注意的事项
2017/03/19 Javascript
vue this.reload 方法 配置
2018/09/12 Javascript
[03:02]安得倚天剑,跨海斩长鲸——中国军团出征DOTA2国际邀请赛
2018/08/14 DOTA
手动实现把python项目发布为exe可执行程序过程分享
2014/10/23 Python
Python和C/C++交互的几种方法总结
2017/05/11 Python
python DataFrame 取差集实例
2019/01/30 Python
字中字效果的实现【html5实例】
2016/05/03 HTML / CSS
存储过程和函数的区别
2013/05/28 面试题
常务副总经理岗位职责
2014/04/12 职场文书
商场开业庆典策划方案
2014/06/02 职场文书
会计师事务所实习证明
2014/11/16 职场文书
公司保洁员管理制度
2015/08/04 职场文书
java调用Restful接口的三种方法
2021/08/23 Java/Android
Vue OpenLayer测距功能的实现
2022/04/20 Vue.js
Redis 异步机制
2022/05/15 Redis
java实现web实时消息推送的七种方案
2022/07/23 Java/Android