从命令提示符传递变量到python脚本

问题描述 投票:0回答:2

所以我知道从命令提示符运行脚本的命令是:

python script.py var1 var2

甚至使用包subprocess

import subprocess
subprocess(python script.py var1 var2)

但是如果var1和/或var2是一个列表,我怎么能实现这一点。就像现在一样,如果我们传入var1 as a list: ["test", "test"],那么当我们使用sys.argv[element_number]捕获它时,列表中的元素似乎被逗号的数量分解。换句话说,我想传入整个列表,所以我可以将它作为我正在调用的脚本中的变量捕获。

python python-3.x python-2.7 subprocess
2个回答
0
投票

您可以使用标准库中的argparse模块。 Stackoverflow上有许多相关的questions and answers


0
投票

我想当你在命令行参数中将list作为字符串传递时。通过sys.argv[index]捕获它时你遇到了问题,因为它有逗号,因为它将是字符串类型。

您可以将变量解析为所需列表。

import sys

def main(*argv, **kwargs):
    if len(sys.argv) < 2:
        print 'Atleast one command line argument required'

    first_arg = sys.argv[1]
    # convert it to list
    first_arg_list = list(first_arg)
    # filter it according to requirement 
    first_arg_list_filtered = [ elem for elem in first_arg_list if elem not in '[],' ]

if __name__ == '__main__':
    main()

希望能帮助到你。

© www.soinside.com 2019 - 2024. All rights reserved.