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())

在这里插入图片描述


  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值