python标准库学习之sys模块详解

目录

前言

处理命令行参数

sys.exit(n) 退出程序,正常退出时exit(0)

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

sys.platform 返回操作系统平台名称

sys.stdin.readline()与input

sys.stdout与print

总结

补充:sys 模块的实例

前言

sys模块是与python解释器交互的一个接口。sys 模块提供了许多函数和变量来处理 Python 运行时环境的不同部分。

处理命令行参数

在解释器启动后, argv 列表包含了传递给脚本的所有参数, 列表的第一个元素为脚本自身的名称。

sys.argv[0] 表示程序自身

sys.argv[1] 表示程序的第一个参数

sys.argv[2] 表示程序的第二个参数

可以做个测试,如下图:

sys.exit(n) 退出程序,正常退出时exit(0) #!/usr/bin/env python # -*- coding:utf-8 -*- import sys a=2 if a<=2: sys.exit(8) #注释:退出python执行程序,下面的代码将不会执行,如同shell中的exit一样。 sys.version 获取Python解释程序的版本信息 #!/usr/bin/env python # -*- coding:utf-8 -*- import sys print(sys.version)

运行结果:

3.7.0 (v3.7.0:1bf9cc5093, Jun 27 2018, 04:59:51) [MSC v.1914 64 bit (AMD64)]

sys.platform 返回操作系统平台名称 #!/usr/bin/env python # -*- coding:utf-8 -*- import sys print(sys.platform)

运行结果:

win32

sys.stdin.readline()与input import sys # sys.stdin.readline() 相当于input,区别在于input不会读入'\n' aa = sys.stdin.readline()# 输入数据多一个'\n' bb = input('请输入:') print(len(aa)) print(len(bb)) #结果 i love DL 请输入:i love DL 10 9

运行结果:

22请输入:2232

可以看出:

①sys.stdin.readline()方式与input方式的区别是:len(aa)元素中多了一个‘\n’换行符。即sys.stdin.readline()方式会读入换行符。

②还有一个区别在于,input()里面可以直接传入文本,然后打印出来。

sys.stdout与print sys.stdout.write('hello' + '\n') print('hello')

上面的两种打印方式是等价的,例如:

import sys # sys.stdin.readline() 相当于input,区别在于input不会读入'\n' aa = sys.stdin.readline() bb = input('请输入:') sys.stdout.write(str(len(aa)) + '\n') # 默认无法实现print方式的sep参数功能,所以需要手动在后面添加一个换行符 print(len(bb))

运行结果:

11请输入:1132

:sys.stdout.write(obj+‘\n’)中的obj只能是字符串

总结 # -*- coding: utf-8 -*- # Python中sys模块:该模块提供对解释器使用或维护的一些变量的访问,以及与解释器强烈交互的函数 # sys.argv #命令行参数List,第一个元素是程序本身路径 # sys.modules.keys() #返回所有已经导入的模块列表 # sys.exc_info() #获取当前正在处理的异常类,exc_type、exc_value、exc_traceback当前处理的异常详细信息 # sys.exit(n) #程序,正常退出时exit(0) # sys.hexversion #获取Python解释程序的版本值,16进制格式如:0x020403F0 # sys.version #获取Python解释程序的版本信息 # sys.maxint #最大的Int值 # sys.maxunicode #最大的Unicode值 # sys.modules #返回系统导入的模块字段,key是模块名,value是模块 # sys.path #返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值 # sys.platform #返回操作系统平台名称 # sys.stdout #标准输出 # sys.stdin #标准输入 # sys.stderr #错误输出 # sys.exc_clear() #用来清除当前线程所出现的当前的或最近的错误信息 # sys.exec_prefix #返回平台独立的python文件安装的位置 # sys.byteorder #本地字节规则的指示器,big-endian平台的值是'big',little-endian平台的值是'little' # sys.copyright #记录python版权相关的东西 # sys.api_version #解释器的C的API版本 # sys.version_info #获取Python解释器的版本信息 # sys.getwindowsversion #获取Windows的版本 # sys.getdefaultencoding #返回当前你所用的默认的字符编码格式 # sys.getfilesystemencoding #返回将Unicode文件名转换成系统文件名的编码的名字 # sys.setdefaultencoding(name) #用来设置当前默认的字符编码 # sys.builtin_module_names #Python解释器导入的模块列表 # sys.executable #Python解释程序路径 # sys.stdin.readline #从标准输入读一行,sys.stdout.write("a") 屏幕输出a import sys #导入sys模块 dir(sys) #dir()方法查看模块中可用的方法 print(sys.getdefaultencoding()) #获取系统当前编码,一般默认为ascii. print(sys.platform) # 获取当前系统平台. 如:win32、Linux等。 print(sys.argv) #sys.argv 变量是一个包含了命令行参数的字符串列表 # print(sys.path) # print(sys.modules.keys()) # print(sys.modules.values()) sys.exit() # 一般情况下执行到主程序末尾,解释器自动退出,但是如果需要中途退出程序,可以调用sys.exit函数 补充:sys 模块的实例

在如下示例中,主要应用了sys模块中的argv实现了从程序外部向程序内传递参数,借助具体的案例让大家可以对sys模块使用能有更加深入的了解。

代码如下:

from sys import argv #通过这种导入,直接使用argv import os def ping(net,start=80,end=85,n=1,w=3): for i in range(start,end+1): ip=net+"."+str(i) command="ping %s -n %d -w %d"%(ip,n,w) print(ip,("通","不通")[os.system(command)])#system用1,0表示通与不通,1不通,0通 #示例输入 if len(argv) not in [2,4,6]: print("参数输入错误!") print("1.py 111.202.98") print("1.py 111.202.98 70 80") print("1.py 111.202.98 70 80 1 5") elif len(argv)==2: net=argv[1] ping(net) elif len(argv)==4: net=argv[1] ping(net,start=int(argv[2]),end=int(argv[3])) else: net=argv[1] ping(net,start=int(argv[2]),end=int(argv[3]),n=int(argv[4]),w=int(argv[5]))

到此这篇关于python标准库学习之sys模块详解的文章就介绍到这了,更多相关python sys模块详解内容请搜索易知道(ezd.cc)以前的文章或继续浏览下面的相关文章希望大家以后多多支持易知道(ezd.cc)!

推荐阅读

    学习写字楼新选择6000元主流配置

    学习写字楼新选择6000元主流配置,,这种配置需要考虑双核心的办公和娱乐平台,充分考虑办公室的办公需求和娱乐需求,以约6000元的预算和cost-e

    Lucene学习之高亮显示

    Lucene学习之高亮显示,索引,字符,在搜索引擎中我们经常会看到这样的情景: 红色部分我们称之为高亮显示,lucene提供了HighLighter模块来实

    Python之可迭代对象、迭代器、生成器

    Python之可迭代对象、迭代器、生成器,迭代,生成器,一、概念描述可迭代对象就是可以迭代的对象,我们可以通过内置的iter函数获取其迭代器,可

    新手如何学习计算机知识(快速入门)

    新手如何学习计算机知识(快速入门),,作为一个初学者,因为我忙于工作和家庭的原因,我没有太多的时间去计算机培训班,但我想熟悉计算机操作和计算

    学习游戏两宜3000元菜鸟超频主机

    学习游戏两宜3000元菜鸟超频主机,,在英特尔中的主流新产品的推出,旧产品将面临洗牌。目前,奔腾双核E2180处理器的价格已经降至430元,而奔腾e2

    如何学习PP点(图2)

    如何学习PP点(图2),,再次输入密码,按GO你可以立即着陆(图1-5): 图1-5 着陆后,PP的主界面出现(图1-6): 图1-6 搜索 当成员进入PP时,点击主界面右上

    电脑维修学习网站|电脑维修自学网

    电脑维修学习网站|电脑维修自学网,,电脑维修自学网有的,建议多努力学习一些知识和本领,等出来可以自己租电脑维修,手机维修等工作,收入不错 电

    revit学习快捷键|Revit快捷键大全

    revit学习快捷键|Revit快捷键大全,,1. Revit快捷键大全Al 对齐Tr 修剪Rp 画参照线Hi 隔离原图Cv 复制Mm 镜像Hh 临时隐藏Vv 图形可见性设