首页 > 其他 > 详细

sys模块的常见用法

时间:2020-12-12 23:35:49      阅读:41      评论:0      收藏:0      [点我收藏+]

  python的内置模块sys,提供了系统相关的一些变量和函数,在实际开发中,常见的有以下几种用法

1. 获取操作系统信息

>>> import sys
# 在window上执行
>>> sys.platform
win32

# 在linux上执行
>>> sys.platform
linux2

  经典的使用场景, 针对只适用于linux平台的代码,通过sys来判断当前操作系统是否符合要求。

2. 获取python版本信息

>>> sys.version
3.8.2 (tags/v3.8.2:7b3ab59, Feb 25 2020, 22:45:29) [MSC v.1916 32 bit (Intel)]
>>> sys.version_info
sys.version_info(major=3, minor=8, micro=2, releaselevel=final, serial=0)
>>> ver = sys.version_info
>>> ver.major
3
>>> ver.minor
8
>>> ver.micro
2

  对于python版本有限制的代码,可以通过以上方法来判断python版本是否符合要求。

3. 获取编码方式

>>> sys.getdefaultencoding()
utf-8

  在python3中,默认的编码方式为utf8, 所以不再需要像python2那样,自己手动设置编码格式为utf-8。

4. 标准输入,输出和错误流

  sys模块提供了变量来表示标准输入,输出和错误流,列表如下

  1. sys.stdin, 标准输入流
  2. sys.stdout,标准输出流
  3. sys.stderr,标准错误流

  具有文件句柄类似的操作,可以从标准输入流读取信息,向标准输出和标准错误流写入信息,用法如下

>>> sys.stderr.write(stderr info\n)
stderr info
12
>>> sys.stdout.write(stdout info\n)
stdout info
12

5. 中断执行

  可以通过sys.exit函数来中断代码的执行,用法如下

>>> sys.exit()

  该函数也可以添加一个参数,默认为0,表示正常退出,其他参数表示非正常退出,支持用字符串来自定义错误信息。

6. sys.path

  该变量存储了python寻找模块的路径

>>> sys.path
[‘‘, /usr/lib/python35.zip, /usr/lib/python3.5, /usr/lib/python3.5/plat-x86_64-linux-gnu, /usr/lib/python3.5/lib-dynload, /usr/local/lib/python3.5/dist-packages, /usr/lib/python3/dist-packages]

  可以在代码中动态修改sys.path列表中的元素,以达到成功导入某个模块的目的。

7. sys.module

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

>>> import sys
>>> sys.modules.keys()
dict_keys([abc, _signal, sitecustomize, sys, _collections_abc, _weakrefset, _sitebuiltins, _weakref, sysconfig, encodings.utf_8, __main__, apport_python_hook, _sysconfigdata_m, posixpath, site, readline, stat, encodings, encodings.latin_1, zipimport, encodings.aliases, _frozen_importlib_external, io, _frozen_importlib, _imp, atexit, os, _stat, _sysconfigdata, os.path, _codecs, _thread, posix, marshal, codecs, _warnings, builtins, errno, genericpath, rlcompleter, _io])

8. 获取命令行参数

  sys.argv是一个列表, 该列表存储了命令行参数,当采用脚本方式运行时,可以方便的处理命令行参数。假设一个python脚本名为test.py,其中的内容如下

import sys
for arg in sys.argv:
    print(arg)

  在操作系统中运行该脚本,会打印命令行参数的内容

> python test.py arg1 arg2
test.py
arg1
arg2

  可以看出,sys.argv的第一个元素是脚本的名字,接下来为传递给脚本的命令行参数。对于简单的脚本编程,用这种方式来捕获命令行参数是非常方便的。当然,对于命令行参数的传递,python还有更加强大的内置模块argparse, 在实际开发中也更常用该模块来处理命令行参数。

sys模块的常见用法

原文:https://www.cnblogs.com/zhuzhaoli/p/14127092.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!