小能豆

FileNotFoundError:subprocess.Popen(['dir'](Windows 7)

py

我正在尝试使用subprocess.Popenshell 命令,因为它似乎在管道方面比subprocess.run

我从一些简单的例子开始,但我得到了FileNotFoundError:

有人告诉我,shell = True如果我将参数设为正确的列表,则无需这样做。但是,这似乎不起作用。

以下是我的尝试:

import subprocess
p1 =subprocess.Popen(['dir'], stdout =subprocess.PIPE)

output = p1.communicate[0]


p = subprocess.Popen([ "dir", "c:\\Users"], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
outputs = p.communicate()

两者都导致FileNotFoundError


阅读 7

收藏
2024-10-28

共1个答案

小能豆

因为只是一个被(或)dir理解的命令,那么你可以:cmd.exe``powershell.exe

subprocess.Popen(["cmd", "/c", "dir", "c:\\Users"], stdout=subprocess.PIPE)

这相当于在 shell 中执行以下操作

C:\>cmd /c dir c:\Users

你可能会发现你必须完全路径cmd,因为c:\\Windows\\System32\\cmd.exe

2024-10-28