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

Ric*_*ick 5 python command-line subprocess popen

我正在尝试按照我能找到的关于subprocess.Popen的信息,因为我想做一个linux命令行调用..我正在尝试如下,但我得到错误"[Errno 2]没有这样的文件或目录".我不是试图打开一个文件所以我不明白这个错误,它工作正常(虽然有其他问题与等待我不想要它的过程完成时)我使用常规操作系统.popen.

我似乎无法弄清楚如何正确地做到这一点,任何建议表示赞赏.

编辑:我使用的命令是复杂和变量的,将它包含在这里是不合情理的,我认为足以说代码在我使用时有效,os.popen而不是在我做新方式时,所以没有,"linux命令行调用"显然不是我正在使用的调用

subprocess.Popen([r"linux command line call"])
>>> [Errno 2] No such file or directory
Run Code Online (Sandbox Code Playgroud)

unu*_*tbu 16

import subprocess    
proc=subprocess.Popen(['ls','-l'])  # <-- Change the command here
proc.communicate()
Run Code Online (Sandbox Code Playgroud)

Popen需要一个字符串列表.第一个字符串通常是要运行的程序,后跟其参数.有时当命令很复杂时,可以方便地shlex.split为您编写列表:

import shlex
proc=subprocess.Popen(shlex.split('ls -l'))  
proc.communicate()
Run Code Online (Sandbox Code Playgroud)