Python subprocess.run(';ls';,shell=True)在windows上不工作

Python subprocess.run(';ls';,shell=True)在windows上不工作,python,Python,导入子流程 subprocess.call('ls',shell=True) 输出: “ls”未被识别为内部或外部命令, 可操作的程序或批处理文件。ls不是Windows命令。它在unix上工作。它在Windows上的对应项是dir。 试一试: import subprocess subprocess.call('dir', shell=True) 如果出于某种神秘的原因,您必须调用ls,那么有很多方法可以做到这一点 首先,Windows PowerShell支持调用ls,您只需告诉Pytho

导入子流程

subprocess.call('ls',shell=True)

输出: “ls”未被识别为内部或外部命令,
可操作的程序或批处理文件。

ls
不是Windows命令。它在unix上工作。它在Windows上的对应项是
dir
。 试一试:

import subprocess
subprocess.call('dir', shell=True)
如果出于某种神秘的原因,您必须调用
ls
,那么有很多方法可以做到这一点

首先,Windows PowerShell支持调用
ls
,您只需告诉Python执行它(以下路径在我的系统上有效):

或者,Windows 10现在支持Windows和Linux之间的互操作性层,允许在Windows上使用Linux环境(称为Windows Linux子系统)。如果已经安装了它,使用它的一种方法是在Linux命令前面加上
wsl

subprocess.call('wsl ls', shell=True)
最后,列出目录的最通用方法是使用内置的Python功能。例如,以下内容将为您提供当前目录的内容:

import os
os.listdir('.')

ls
不是windows上的命令。如果您想在windows上使用linux命令,请使用WSL或Cygwin。您希望
ls
在windows上做什么?它当前的行为与您在
cmd.exe
中键入它时的行为相同?您正在尝试运行Powershell别名吗?或者Unix命令?为了便于移植和提高效率,当有Python标准模块提供相同功能时,应避免运行外部命令。在这种情况下,您可以致电
os.scandir
获取目录列表和文件信息。关于您的问题:谢谢大家的快速回复。
import os
os.listdir('.')