我有一张单子
apps = []
apps.append("wq35a5huqlja45jsyukrpmwuiayovrmh")
apps.append("q7mimvgduueernwvw4y22t5huemykntw")
apps.append("pmudbpyquna2bll53pwqh7gdejxtmchq")
我想把这个list变量传递给一个linux命令,类似这样。在
^{pr2}$但我有以下错误。在
TypeError: execv() arg 2 must contain only strings
我也试过了,但还是不行。在
^{3}$有人能告诉我如何将变量(列表、字典e.t.c)传递给subprocess.call命令
这是错误的,因为
apps
不是shell变量。传递python字符串变量是现成的。在但是,要传递字符串以外的任何内容,您必须手动执行一些类型转换,因此对于列表,您必须执行以下操作。在
^{pr2}$我对哈莉H的回答投了赞成票,但为了完整起见,这里有另一种方法。在
这需要一个足够新的Python来拥有
subprocess.run()
,尽管类似的东西很容易或者至少在python2subprocess
接口中也是可能的。在3.7+universal_newlines
中,标记text
更合适。在如果
xargs
是一个非常长的字符串,xargs
还将注意避免任何“参数列表太长”错误。(谷歌搜索ARG_MAX
。)将扩展到
^{pr2}$相关问题 更多 >
编程相关推荐