如何在Python中创建参数?假设我有一个脚本install.py,它在主机上执行包。我有另一个名为config.py的配置脚本,其中我存储了主机名&包名称。但我想创建我的主机名作为"参数"我可以使用此命令在终端中运行 安装。它应该将主机名称作为参数捕获。 [即安装linuxServer1'它应该直接安装到该主机。]
#codes from config.py
hostName = "linuxServer1"
package=['test1',
'test2'
]
#codes from install.py
Install = []
for i in config.package:
Install.append("deploy:"+i+",host=")
for f in Install:
subprocess.call(["fabric", f+config.hostName])
答案 0 :(得分:1)
我认为你应该看看python的“ argparse ”模块,它将解决你当前的问题:)
让我们举一个例子 -
以下代码是一个Python程序,它获取整数列表并生成总和或最大值:
import argparse
parser = argparse.ArgumentParser(description='Process some integers.')
parser.add_argument('integers', metavar='N', type=int, nargs='+',
help='an integer for the accumulator')
parser.add_argument('--sum', dest='accumulate', action='store_const',
const=sum, default=max,
help='sum the integers (default: find the max)')
args = parser.parse_args()
print(args.accumulate(args.integers))
如果要求帮助(假设上面的Python代码保存在名为prog.py的文件中) -
$ python prog.py -h
usage: prog.py [-h] [--sum] N [N ...]
Process some integers.
positional arguments:
N an integer for the accumulator
optional arguments:
-h, --help show this help message and exit
--sum sum the integers (default: find the max)
使用适当的参数运行时,它会输出命令行整数的总和或最大值:
$ python prog.py 1 2 3 4
4
$ python prog.py 1 2 3 4 --sum
10
如果传入无效参数,则会发出错误:
$ python prog.py a b c
usage: prog.py [-h] [--sum] N [N ...]
prog.py: error: argument N: invalid int value: 'a'
答案 1 :(得分:1)
sys.argv包含给python命令的所有命令行参数。
import sys
if __name__ == "__main__":
print(sys.argv) # the list containing all of the command line arguments
if len(sys.argv) > 1: # The first item is the filename
host = sys.argv[1]
print(host)
答案 2 :(得分:0)
import argparse
Install = []
hostName = str(sys.argv[1])
for i in config.package:
Install.append("deploy:"+i+",host=")
for f in Install:
subprocess.call(["fabric", f+hostName])