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