前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python sys模块的常见用法汇总

python sys模块的常见用法汇总

作者头像
生信修炼手册
发布2020-05-25 15:44:28
1.7K0
发布2020-05-25 15:44:28
举报
文章被收录于专栏:生信修炼手册生信修炼手册

欢迎关注”生信修炼手册”!

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

1. 获取操作系统信息

代码语言:javascript
复制
>>> import sys
# 在window上执行
>>> sys.platform
'win32'

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

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

2. 获取python版本信息

代码语言:javascript
复制
>>> 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. 获取编码方式

代码语言:javascript
复制
>>> sys.getdefaultencoding()
'utf-8'

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

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

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

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

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

代码语言:javascript
复制
>>> sys.stderr.write('stderr info\n')
stderr info
12
>>> sys.stdout.write('stdout info\n')
stdout info
12

5. 中断执行

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

代码语言:javascript
复制
>>> sys.exit()

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

6. sys.path

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

代码语言:javascript
复制
>>> 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

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

代码语言:javascript
复制
>>> 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,其中的内容如下

代码语言:javascript
复制
import sys
for arg in sys.argv:
    print(arg)

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

代码语言:javascript
复制
> python test.py arg1 arg2
test.py
arg1
arg2

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

·end·

—如果喜欢,快分享给你的朋友们吧—

原创不易,欢迎收藏,点赞,转发!生信知识浩瀚如海,在生信学习的道路上,让我们一起并肩作战!

本公众号深耕耘生信领域多年,具有丰富的数据分析经验,致力于提供真正有价值的数据分析服务,擅长个性化分析,欢迎有需要的老师和同学前来咨询。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-05-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信修炼手册 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档