栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python标准库sys的使用(python运行时解释器相关的变量与方法)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python标准库sys的使用(python运行时解释器相关的变量与方法)

sys模块的常见函数列表
  • sys.argv: 实现从程序外部向程序传递参数。

  • sys.exit([arg]): 程序中间的退出,arg=0为正常退出。

  • sys.path: 获取指定模块搜索路径的字符串集合,可以将写好的模块放在得到的某个路径下,就可以在程序中import时正确找到。

  • sys.platform: 获取当前系统平台。

  • sys.modules:该变量是一个字典,存储了已经导入的模块

  • sys.version:获取Python解释程序的版本信息

  • sys.getrecursionlimit :获取python默认支持的递归数量

  • sys.getdefaultencoding(): 获取系统当前编码,一般默认为ascii。

  • sys.setdefaultencoding(): 设置系统默认编码,执行dir(sys)时不会看到这个方法,在解释器中执行不通过,可以先执行reload(sys),在执行 setdefaultencoding(‘utf8’),此时将系统默认编码设置为utf8。(见设置系统默认编码 )

  • sys.getfilesystemencoding(): 获取文件系统使用编码方式,Windows下返回’mbcs’,mac下返回’utf-8’.

sys.argv

功能:在外部向程序内部传递参数

#!/usr/bin/env python

import sys
print sys.argv[0]
print sys.argv[1]

运行

>>>python sys.py argv1

sys.py
argv1

sys.exit([arg])

功能:执行到主程序末尾,解释器自动退出,但是如果需要中途退出程序,可以调用sys.exit函数,带有一个可选的整数参数返回给调用它的程序,表示你可以在主程序中捕获对sys.exit的调用。(0是正常退出,其他为异常)

#!/usr/bin/env python

import sys

def exitfunc(value):
	print value   #打印异常传输过来的value
	sys.exit(0)   #正常退出

print ("hello")

try:
	sys.exit(1)  #此处为异常,所以会跳转到异常处理,并将value传到异常
except SystemExit,value:
	exitfunc(value) #将异常数值传到函数中

print ("come?")

运行

>>>python exit.py

hello
1

sys.path

功能:获取指定模块搜索路径的字符串集合,可以将写好的模块放在得到的某个路径下,就可以在程序中import时正确找到。(python寻找模块的路径)

  • 可以在代码中动态修改sys.path列表中的元素,已达到成功导入某个模块的目的。
>>> 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.path.append(base_DIR)
print(sys.path)

sys.modules

功能:该变量是一个字典,存储了已经导入的模块

import sys,os
print(sys.modules.keys())

运行

-----------------------结果;
dict_keys(['builtins', 'sys', '_frozen_importlib', '_imp', '_warnings', '_thread', '_weakref', '_frozen_importlib_external', '_io', 'marshal', 'nt', 'winreg', 'zipimport', 'encodings', 'codecs', '_codecs', 'encodings.aliases', 'encodings.utf_8', '_signal', '__main__', 'encodings.latin_1', 'io', 'abc', '_weakrefset', 'site', 'os', 'errno', 'stat', '_stat', 'ntpath', 'genericpath', 'os.path', '_collections_abc', '_sitebuiltins', '_bootlocale', '_locale', 'encodings.gbk', '_codecs_cn', '_multibytecodec', 'sysconfig', 'encodings.cp437', 'sitecustomize'])

sys.platform

功能:获取当前执行环境的平台,如win32表示是Windows系统,linux2表示是linux平台

print(sys.platform)
-------------结果:
win32  

-------------结果:
[root@xiaoma /root] 
>>>python mcw.py 
linux2

sys.version

功能:获取Python解释程序的版本信息

import sys
print(sys.version)
--------------结果:
3.6.8 (tags/v3.6.8:3c6b436a57, Dec 23 2018, 23:31:17) [MSC v.1916 32 bit (Intel)]
import sys
print(sys.version)
--------------结果:
[root@xiaoma /root] 
>>>python mcw.py 
2.7.5 (default, Nov  6 2016, 00:28:07) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-11)]

sys.getrecursionlimit

功能:获取系统默认递归的最大层数

import sys
print(sys.getrecursionlimit())


sys.getdefaultencoding()

功能:获取系统默认编码

import sys
print(sys.getdefaultencoding())


sys.getfilesystemencoding()

功能:获取文件系统使用编码方式

import sys
print(sys.getfilesystemencoding())


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/487551.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号