
[英]subprocess.Popen: 'OSError: [Errno 2] No such file or directory' only on Linux
[英]Python, using subprocess.Popen to make linux command line call? I'm getting “[Errno 2] No such file or directory”
我正在尝试按照我能找到的关于subprocess.Popen的信息,因为我想做一个linux命令行调用..我正在尝试如下,但我得到错误“[Errno 2]没有这样的文件或目录”。 我不是试图打开一个文件所以我不明白这个错误,它工作正常(虽然有其他问题与等待我不想要它的过程完成)当我使用常规操作系统时.popen。
我似乎无法弄清楚如何正确地做到这一点,任何建议表示赞赏。
编辑:我使用的命令是复杂和变量的,将它包含在这里太过于偏离上下文了,我认为只要说代码在我使用os.popen
时工作就足够了,而不是在我使用新方法时,所以不,“linux命令行调用”显然不是我正在使用的调用
subprocess.Popen([r"linux command line call"])
>>> [Errno 2] No such file or directory
import subprocess
proc=subprocess.Popen(['ls','-l']) # <-- Change the command here
proc.communicate()
Popen
期待一个字符串列表。 第一个字符串通常是要运行的程序,后跟其参数。 有时当命令很复杂时,使用shlex.split
为你shlex.split
列表很方便:
import shlex
proc=subprocess.Popen(shlex.split('ls -l'))
proc.communicate()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.