繁体   English   中英

Python,使用subprocess.Popen进行linux命令行调用?我得到“[Errno 2]没有这样的文件或目录”

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM