导航:首页 > 程序命令 > python获得命令行参数

python获得命令行参数

发布时间:2023-11-09 18:07:38

1. python3脚本传参实战(2个方法3个传参列表的案例)

在一些测试平台对接时或者用例执行时,或多或少会用到Python脚本传参的问题。

test.py脚汪敬唯本

#!/usr/bin/python3

import sys

print ('参数个数为:', len(sys.argv), '个参数。')

print ('参数列表:', str(sys.argv))

print ('脚本名:', str(sys.argv[0]))

print ('第一个参数:', sys.argv[1])

执行python3 test.py arg1 arg2 arg3

参数个数为: 4 个参数。

参数列表: ['test.py', 'arg1', 'arg2', 'arg3']

脚本名: test.py

第一个参数: arg1

test.py脚本

#!/usr/bin/python3

import argparse

# 生成了一个命令行参数的对象

parser = argparse.ArgumentParser(description='Test for argparse')

parser.add_argument('--name', '-n', help='name属性,非必要参数')

parser.add_argument('--year', '-y', help='year 属性,非必要参数,但有默认值', default=2017)

parser.add_argument('--body', '-b', help='body属性,必要参数稿铅', required=True)

args = parser.parse_args()

print (args.year,  args.name, args.body)

查看帮助python3 test.py --help

usage: test.py [-h] [--name NAME] [--year YEAR] --body BODY

Test for argparse

optional arguments:

  -h, --help  show this help message and exit

  --name或-n NAME  name属性,非必要参数

  --year或-y YEAR  year属性,非必要参数,但有默认值

  --body或-b BODY  body 属性,必要参数

执行python3 test.py --year 2021 -n robot  --body "are you ok?"

2021 robot are you ok?

以方法2中的test.py脚本为例

python3 test.py --year 2021 --body [\"test\", \"robot\",\"boy\" ]

2021 ["test", "robot", "boy" ]

以方法1中的test.py脚本为例

python3 test.py [\"test\", \"robot\",\"boy\" ]

参数个数为: 2个参数。

参数列表: ['test.py', '[\"test\", \"robot\", \"boy\" ]']

脚本名: test.py

第一个参数: ["test", "robot", "boy" ]

其实此时传入的第一个参困培数是一个字符,需要转换为列表。

import json

json.loads(sys.argv[1])

test_arg.py脚本

#!/usr/bin/python3

import argparse

import os

# 生成了一个命令行参数的对象

parser = argparse.ArgumentParser(description='Test for argparse')

parser.add_argument('--body', '-b', help='body属性,必要参数', required=True)

args = parser.parse_args()

print (args.body)

command=python3 + '  ' + test_sys.py+ '  '  + args.body

print (command)

str=('command')

result=os.system(str)

test_sys.py脚本

#!/usr/bin/python3

import sys

import json

print ('第一个参数:', sys.argv[1])

print ('列表:', json.loads(sys.argv[1]))

执行python3 test_arg.py --body  [\"test\", \"robot\",\"boy\" ]

python3  test_sys.py  ["test", "robot", "boy" ]

test_sys.py执行报错,转json失败。

还记得我们案例2中,脚本的传入指定参数和实际传入参数嘛?

test_arg.py脚本我们稍微优化下,在传参前先字符替换下。

["test", "robot", "boy" ]转换为[\"test\", \"robot\",\"boy\" ]即可。

command.replace(' " ' , r ' \" ') 添加到command=之后,再次运行看看呢?

2. Python 命令行(三)- 命令行参数解析

Python 标准库中的 argparse 可以根据程序中的定义,从 sys.argv 中解析参数,并且自动生成帮助信息。

使用 add_argument 方法为应用程序添加参数,其中 add_argument 方法的参数比较多,这也使得 argparse 库的使用不够简洁,后续将继续为大家介绍更好用的命令行参数解析的开源库 click

下面是 add_argument 方法的参数及含义总结:

解析参数需要使用 ArgumentParser 实例的 parse_args 方法,此方法返回一个 NameSpace 对象;可以通过访问 NameSpace 对象属性的方式获取参数值。

下面是一个简单的例子:通过 parser.server 获取 --host 选项的值,通过 parse.boolean_switch 获取 -t 选项的值。

查看帮助信息:

参数默认值:

指定参数:

打印帮助信息:

打印版本信息:

传递参数:

3. Python笔记:命令行参数解析

有些时候我们需要通过命令行将参数传递给脚本,C语言中有个getopt()方法,python中也有个类似的命令行参数解析方法getopt()。python也提供了比getopt()更简洁的argparse方法。另外,sys模块也可以实现简单的参数解析,本文将对这3种命令行参数解析方法简要介绍。

sys.argv是传入的参数列表,sys.argv[0]是当前python脚本的名称,sys.argv[1]表示第一个参数,以此类推。

命令行运行:

可以看到传入的参数通过sys.argv来获取,它就是一个参数列表。

python的getopt与C语言的的getopt()函数类似。相比于sys模块,支持长参数和短参数,并对参数解析赋值。但它需要结合sys模块进行参数解析,语法格式如下:

短参数为单个英文字母,如果必须赋值需要在后面加英文冒号( : ),长参数一般为字符串(相比短参数,更能说明参数含义),如果必须赋值需要在后面加等号( = )。

命令行运行:

注意:短参数(options)和长参数(long_options)不需要一一对应,可以任意顺序,也可以只有短参数或者只有长参数。

argparse模块提供了很多可以设置的参数,例如参数的默认值,帮助消息,参数的数据类型等。argparse类主要包括ArgumentParser、add_argument和parse_args三个方法。

下面介绍这三个函数的使用方法。

argparse默认提供了 -h | --help 参数:

命令行运行:

下面列出部分参数:

下面来添加参数:

命令行运行:

parse_args() 方法用于解析参数,在前面的示例代码中使用parse_args方法来提取参数值,对于无效或者错误的参数会打印错误信息和帮助信息:

命令行运行:

本文介绍了Python的三种命令行参数解析方法sys.argv、getopt和argparse,可以根据自己的需要进行选择,getopt和argparse两种方法相比来说,建议选择argparse,代码量更少更简洁。更详细的使用方法参考官方文档:

--THE END--

4. 在python中怎样获取命令行的原始参数

数1: sys.argv[1]
参数2: sys.argv[2]

test.py
1 import sys
2 print "脚本名:", sys.argv[0]
3 for i in range(1, len(sys.argv)):
4 print "参数", i, sys.argv[i]
>>>python test.py hello world
脚本名:test.py
参数 1 hello
参数 2 world
python中使用命令行选项:
例如我们需要一个convert.py脚本。它的作用是处理一个文件,并将处理后的结果输出到另一个文件中。
要求该脚本满足以下条件:
1.通过-i -o选项来区别参数是输入文件还是输出文件.
>>> python convert.py -i inputfile -o outputfile
2.当不知道convert.py需要哪些参数时,用-h打印出帮助信息
>>> python convert.py -h
getopt函数原形:
getopt.getopt(args, options[, long_options])

5. python如何获取cmd命令框里的内容

你的程序使用命令行参数比较好。

请看下例:

pythontest.py1


python会读取命令行参数,你可以通过sys.argv列表访问命令行参数:

importsys
mod=sys.argv[1]
#然后根据mod的不同,运行不同的代码


给你介绍一个python内置库,叫argparse。使用它,解析命令选项非常方便!


也可以使用标准输入,你的需求不建议这样做:

mod=raw_input('你要运行的程序:')


望采纳,谢谢支持!

6. Python中pip命令的参数有哪些呢

不只是两种,pip命令有很多参数可以使用。下面列出了一些常用的pip命令参数:

install:安装模块(package)。
uninstall:卸载岩咐搏模块。
freeze:列出粗祥已安装模块。
list:列出已安装模块,包括版本号、安装路径等信息。
show:显示比较详细的安装信息。
search:查找模块。
download:下载模块并不安装。
wheel:生成并安装wheel包,常用于快速安装二进制包。
requirements:安装文简慧件中列出的所有模块。
除了这些常用参数,pip还有很多其它参数和选项,大部分都可以通过pip --help命令查看。使用 pip 命令时,需要注意正确的参数和选项使用方式。

7. python写一个命令,可是我试了半天,不知道参数怎么写。

如果您想写一个命令行程序,可以使用Python的argparse模块来实现。argparse模块提供了一组简单而强大逗桐的命令行解析工具,可以让您快速构建复杂的命令行程序。

下面是一个简单的例子,展示了如何山毕坦使用argparse模块来定义命令行参数:



在上面的代码中,我们首先数陵导入argparse模块,然后创建一个ArgumentParser对象,并使用add_argument()方法来定义命令行参数。其中,第一个参数是参数的名字,第二个参数是参数的别名,help参数用来指定帮助信息,type参数用来指定参数的类型。

在这个例子中,我们定义了两个参数:name和age,分别表示用户的名字和年龄。您可以在命令行中使用


import argparse

parser = argparse.ArgumentParser()

parser.add_argument('-n', '--name', help='Your name')

parser.add_argument('-a', '--age', type=int, help='Your age')

args = parser.parse_args()

print('Hello, {}! You are {} years old.'.format(args.name, args.age))

阅读全文

与python获得命令行参数相关的资料

热点内容
教育系统源码达标 浏览:886
声卡驱动安装程序在哪个文件夹 浏览:60
钱还完了银行不给解压 浏览:169
linux的系统调用表 浏览:752
php怎么转换页面 浏览:546
我的世界买了服务器之后怎么开服 浏览:828
r1234yf汽车空调压缩机 浏览:145
ftp服务器地址栏 浏览:900
linux图形分区 浏览:965
安徽到辽宁源码 浏览:577
libs安卓的文件夹叫什么 浏览:871
生意圈app是什么意思 浏览:397
linuxarcgisserver 浏览:234
加密pdf怎么修改文件 浏览:138
红米刷机无命令怎么办 浏览:356
啥叫美国谷歌外包程序员 浏览:260
云服务器管家婆 浏览:440
发邮件命令 浏览:354
程序员好做吗工作好吗 浏览:886
云电脑服务器维护一个月多少钱 浏览:882