我需要从Python脚本中调用可执行文件并恢复其输出。所以我这样做:
command = executable + ' -a something ' + variable + ' -b somethingElse'
output = subprocess.check_output(shlex.split(command),shell=True)
当我执行此操作时,我得到一个错误127.问题可能与参数的大小有关:执行的最终字符串长度超过1300个字符。但奇怪的是,如果我将该字符串复制粘贴到shell中并执行它,那么它可以完美地工作。我不知道Python中有限制吗?我想我可以设计其他解决方案,但(a)我更喜欢这个和(b)我对这个问题感到好奇。
答案 0 :(得分:1)
删除shell=True
(无论如何都不需要)解决了参数长度问题。
获得的经验:不要使用shell=True
,除非你不能做任何事情(即使在那种情况下,可能还有更好的解决方案)