标签:32位 个数 action code eve 版本 star and copyright
sys模块代表了Python解释器,主要用于获取和Python解释器相关的信息,其中
sys.argv
可以获取命令行参数
在Python交互式解释器中可以先导入sys模块 import sys
,再输入 dir(sys)
查看sys模块所包含的全部程序单元(包括变量、函数等),或者 [i for i in dir(sys) if not i.startswith(‘_‘)]
过滤掉隐藏的单元
sys.argv
:以列表的方式获取运行 Python 程序的命令行参数存放其中。其中 sys.argv[0]
通常就是指该 Python程序本身,sys.argv[1]
代表第一个参数,sys.argv[2]
代表第二个参数,以此类推。类似于 Shell 中的 $0、$1、$2
import sys
print(‘程序名称为:{},第一个参数为:{},第二个参数为:{}‘.format(sys.argv[0], sys.argv[1], sys.argv[2]))
sys.byteorder
:显示本地字节序的指示符。如果本地字节序的大端模式,则该属性返回big,否则返回little
sys.copyright
:该属性返回与 Python 解释器有关的版权信息
sys.executable
:该属性返回 Python 解释器在磁盘上的存储路径
sys.exit()
:通过引发SystemExit异常来退出程序,将其放在try块中不能阻止finally块的执行。
sys.flags
:该只读属性返回运行Python命令时指定的旗标
sys.getfilesystemencodiing()
:返回在当前系统中保存文件所用的字符集
sys.getrefcount()
:返回指定对象的引用计数。
sys.getrecursionlimit()
:返回Python解释器当前支持的递归深度。该属性可通过setrecursionlimit()方法重新设置
sys.getswitchinterval()
:返回在当前Python解释器中线程切换的时间间隔。该属性可通过setswitchinterval()函数改变
sys.implementation
:返回当前Python解释器的实现
sys.maxsize
:返回Python整数支持的最大值。在32位平台上,该属性值为 2 ×× 31-1;在64位平台上,该属性值为 2 ×× 63-1
sys.path
:该属性指定Python查找模块的路径列表。程序可通过修改该属性来动态增加Python加载模块的路径
sys.platfrom
:返回Python解释器所在的平台的标识符
sys.stdin
:返回系统的标准输入流——一个类文件对象
sys.stdout
:返回系统的标准输出流——一个类文件对象
sys.stderr
:返回系统的错误输出流——一个类文件对象
sys.version
:返回当前Python解释器的版本信息
sys.winver
:返回当前Python解释器的主版本号
sys.copyright
:返回当前Python解释器的版权信息
getopt是对sys.argv获取的命令行参数进行二次处理。在运行程序时,可能需要根据不同的条件,输入不同的命令行选项来实现不同的功能,比如 -u 代表后面是用户,-p 代表后面是密码。
举个例子
## fileName: test.py
import sys, getopt
opts, args = getopt.getopt(sys.argv[1:], "hu:", ["help", "file="])
print("opts输出结果为", opts)
print("args输出结果为", args)
执行的例子
python test.py -h -u root --help --file=file.py file2.py
## 输出结果
opts输出结果为 [(‘-h‘, ‘‘), (‘-u‘, ‘root‘), (‘--help‘, ‘‘), (‘--file‘, ‘file.py‘)]
args输出结果为 [‘file2.py‘]
optparse模块主要用来为脚本传递命令参数,采用预先定义好的选项来解析命令行参数,自动生成帮助信息,不需要sys.argv
先简单写个例子
import optparse
usage="python %prog -u/--user <target user> -p/--password <target password>"
parser=optparse.OptionParser(usage) ## 写入上面定义的帮助信息
parser.add_option(‘-u‘, ‘--user‘,dest=‘User‘,type=‘string‘,help=‘target user‘, default=‘root‘)
parser.add_option(‘-p‘,‘--password‘,dest=‘Pwd‘,type=‘string‘,help=‘target password‘)
options, args=parser.parse_args()
print(‘options为‘, options)
print("用户名为", options.User)
print("密码为", options.Pwd)
print(‘args为‘, args)
add_option参数:
import optparse
usage="python %prog -u/--user <target user> -p/--password <target password>"
parser=optparse.OptionParser(usage) ## 写入上面定义的帮助信息
parser.add_option(‘-u‘, ‘--user‘,dest=‘User‘,type=‘string‘,help=‘target user‘, default=‘root‘)
parser.add_option(‘-p‘,‘--password‘,dest=‘Pwd‘,type=‘string‘,help=‘target password‘)
group = optparse.OptionGroup(parser, ‘Debug Options‘) ## 创建group分组
parser.add_option_group(group) ## 把创建的组添加到parser中
group.add_option(‘-d‘, ‘--debug‘, action=‘store_true‘, help=‘Print debug information‘)
options, args=parser.parse_args()
action有三种类型:
optparse模块的升级版,optparse被Python2.7和Python3.2弃用,所有有理由相信未来是属于argparse模块的
编辑帮助信息
import argparse
parser = argparse.ArgumentParser(description=‘帮助描述信息‘, prog=‘程序显示名称‘, usage=‘顶部显示信息,会覆盖prog‘, epilog=‘底部显示信息‘) ## 括号里面可以什么都不写,会走默认
parser.parse_args() ## 命令行参数解析后存放的位置
还有一些不常用的参数:
添加命令行参数
import argparse
parser = argparse.ArgumentParser()
parser.add_argument(‘-u‘, ‘--user‘, dest=‘User‘, type=str,default=‘root‘, help=‘target User‘)
parser.add_argument(‘-s‘, ‘--sex‘, dest=‘Sex‘, type=str, choices=[‘男‘, ‘女‘], default=‘男‘, help=‘target Sex‘)
parser.add_argument(‘-n‘, ‘--number‘, dest=‘Num‘, nargs=2, required=True,type=int, help=‘target Two Numbers‘)
print(parser.parse_args()) ## 字典的方式接收参数
参数大多数和上面的optparse相同,不同的有:
标签:32位 个数 action code eve 版本 star and copyright
原文地址:https://www.cnblogs.com/songguoyou/p/11919730.html