所以我知道从命令提示符运行脚本的命令是:
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]
捕获它时,列表中的元素似乎已被逗号分隔。换句话说,我想传递整个列表,以便可以将其捕获为我正在调用的脚本中的变量。
答案 0 :(得分:0)
您可以使用标准库中的argparse
模块。 Stackoverflow上有许多相关的questions and answers。
答案 1 :(得分:0)
我想当您在命令行参数中将列表作为字符串传递时。
通过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()
希望有帮助。