我正在尝试将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
答案 0 :(得分:2)
它打印12['a', 'b']
,因为"['a', 'b']"
是列表[x,y]
的字符串表示形式。
如果您的预期输出为12a,b
,请替换
para = ['1','2',str(error_list)]
与
para = ['1','2',','.join(error_list)]