将列表中的列表作为参数传递给 python 中的子进程
pass a list within a list as an argument to subprocess in python
我正在尝试将 list
中的 list
作为参数传递给 subprocess
。我的代码是:
def test():
x= 'a'
y = 'b'
filename = "test.log"
error_list = []
error_list.append(x)
error_list.append(y)
para = ['1','2',str(error_list)]
ret = subprocess.Popen([sys.executable,"script.py"]+para)
ret.wait()
if __name__ == '__main__':
test()
当我像这样访问这个脚本时,在子进程脚本端:
def test(arg1,arg2,arg3):
content = arg1 + arg2 + arg3
print content
if __name__ == "__main__":
arg1 = sys.argv[1]
arg2 = sys.argv[2]
arg3 = sys.argv[3]
test(arg1,arg2,arg3)
前两个参数在 content
中是正确的,但第三个参数是 [, ', a, ', ,, , ', b, ', ]
,而我希望它只是 a,b
它打印 12['a', 'b']
因为 "['a', 'b']"
是列表 [x,y]
.
的字符串表示
如果您的预期输出是 12a,b
,请替换
para = ['1','2',str(error_list)]
和
para = ['1','2',','.join(error_list)]
我正在尝试将 list
中的 list
作为参数传递给 subprocess
。我的代码是:
def test():
x= 'a'
y = 'b'
filename = "test.log"
error_list = []
error_list.append(x)
error_list.append(y)
para = ['1','2',str(error_list)]
ret = subprocess.Popen([sys.executable,"script.py"]+para)
ret.wait()
if __name__ == '__main__':
test()
当我像这样访问这个脚本时,在子进程脚本端:
def test(arg1,arg2,arg3):
content = arg1 + arg2 + arg3
print content
if __name__ == "__main__":
arg1 = sys.argv[1]
arg2 = sys.argv[2]
arg3 = sys.argv[3]
test(arg1,arg2,arg3)
前两个参数在 content
中是正确的,但第三个参数是 [, ', a, ', ,, , ', b, ', ]
,而我希望它只是 a,b
它打印 12['a', 'b']
因为 "['a', 'b']"
是列表 [x,y]
.
如果您的预期输出是 12a,b
,请替换
para = ['1','2',str(error_list)]
和
para = ['1','2',','.join(error_list)]