博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python中的sys模块和sys.argv的使用
阅读量:6967 次
发布时间:2019-06-27

本文共 3270 字,大约阅读时间需要 10 分钟。

一、sys模块

sys是Python的一个「标准库」,也就是官方出的「模块」,是「System」的简写,封装了一些系统的信息和接口。

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 
>>> sys.version_info
(2, 4, 3, 'final', 0) 'final'表示最终,也有'candidate'表示候选,表示版本级别,是否有后继的发行
sys.displayhook(value)      如果value非空,这个函数会把他输出到sys.stdout,并且将他保存进__builtin__._.指在python的交互式解释器里,'_'代表上次你输入得到的结果,hook是钩子的意思,将上次的结果钩过来
sys.getdefaultencoding()    返回当前你所用的默认的字符编码格式
sys.getfilesystemencoding() 返回将Unicode文件名转换成系统文件名的编码的名字
sys.setdefaultencoding(name)用来设置当前默认的字符编码,如果name和任何一个可用的编码都不匹配,抛出LookupError,这个函数只会被site模块的sitecustomize使用,一旦别site模块使用了,他会从sys模块移除
sys.builtin_module_names    Python解释器导入的模块列表 
sys.executable              Python解释程序路径 
sys.getwindowsversion()     获取Windows的版本 
sys.stdin.readline()        从标准输入读一行,sys.stdout.write("a") 屏幕输出a

二、sys.argv的使用

「argv」是「argument variable」参数变量的简写形式,一般在命令行调用的时候由系统传递给程序。

sys.argv[]说是一个从程序外部获取参数的桥梁。我们从外部取得的参数可以是多个,所以获得的是一个列表(list),也就是说sys.argv其实可以看作是一个列表,所以才能用[]提取其中的元素。其第一个元素是程序本身,随后才依次是外部给予的参数。

下面总结一下:

sys.argv[0]表示代码本身文件路径,所以参数从1开始。

sys.argv[1]表示第一个命令行参数

sys.argv[1:]表示从第一个命令行参数到输入的最后一个命令行参数

sys.argv[1][2:] 表示取第一个命令行参数,但是去掉前两个字节

应用例子:

import sysprint(sys.argv)  #获取运行python文件的时候传入的参数,第1个参数,index是0#输出:[E:/MyScripts/Study/day10/sys-argv.py]if len(sys.argv)>1: #如果参数大于1,证明给了参数    if sys.argv[1]=='--help': #如果第2个参数是--help        quit('这个python是用来测试的,运行的时候需要使用 python a.py port')         #quit表示运行完此句代码即退出,不继续运行下面的代码了    else: #否则传入的是port并赋值给port        port = sys.argv[1]else: #如果没有传入参数,则port默认是7878    port = 7878import flaskserver = flask.Flask(__name__)@server.route('/')def index():    return '

首页

'server.run(port=port)

以上代码输出:

#以上代码输出结果是:['E:/MyScripts/Study/day10/sys-argv.py']#下面是启动端口号为7878的一个本地服务 * Serving Flask app "sys模块" (lazy loading) * Environment: production   WARNING: Do not use the development server in a production environment.   Use a production WSGI server instead. * Debug mode: off * Running on http://127.0.0.1:7878/ (Press CTRL+C to quit)

也可以在pycharm的terminal中运行,如下:

#在Terminal中写命令,先写了一个python sys模块.py --help,回车运行完成后,写了python sys模块.py 2345(传了port) E:\MyScripts\Study\day10>python sys-argv.py --help['sys-argv.py', '--help']这个python是用来测试的,运行的时候需要使用 python a.py portE:\MyScripts\Study\day10>python sys-argv.py 2345['sys-argv.py', '2345'] * Serving Flask app "sys-argv" (lazy loading) * Environment: production   WARNING: Do not use the development server in a production environment.   Use a production WSGI server instead. * Debug mode: off * Running on http://127.0.0.1:2345/ (Press CTRL+C to quit)

或者在pycharm中选择填写参数

sys.argv使用场景,如别人调用你的代码时,需要别人传参数(如端口号可以传使用人自己的端口号,这样网址的端口号就是他自己的端口号了),根据传的参数(如help)去执行对应的命令

作用:是获取到运行python文件的时候传入的参数

转载于:https://www.cnblogs.com/blueteer/p/10277079.html

你可能感兴趣的文章
Codeforces Beta Round #77 (Div. 2 Only) A. Football【字符串/判断是否存在连续7个0或7个1】...
查看>>
洛谷 P1865 A % B Problem[筛素数/前缀和思想/区间质数个数]
查看>>
动态规划题库
查看>>
[30期] 第一个项目
查看>>
[31期] 第一个项目结束之际-->俺很高调但很真诚地感谢一个人-->涛爷
查看>>
回头再看第一次项目
查看>>
sql 50题
查看>>
Unity3D编辑器之重写Hierarchy的右键菜单
查看>>
有无关键字new的区别
查看>>
svn idea使用
查看>>
Hashmap,Set,Map,List,ArrayList的区别
查看>>
3.Linux 文件的压缩与打包
查看>>
JAVA分布式架构
查看>>
如何把使用到android res文件夹下面资源(R.xx.xx)的工程打包成jar文件,供其它项目使用...
查看>>
删除Referencing outlet
查看>>
三、hbase JavaAPI
查看>>
Maximum Subarray
查看>>
Android ProGuard使用要点
查看>>
导入自定义模块model
查看>>
Python之初识函数(Day11)
查看>>