当前位置: 首页 > 知识库问答 >
问题:

Python 3子进程模块在Windows上运行“dir”时抛出错误

燕元明
2023-03-14

Python 3 中的这个简单程序会引发错误。可能的原因是什么?此问题在我安装/重新安装 Python 3.5/3.6 后出现。此外,蟒蛇2.7已安装在我的PC上(视窗10机器)。

import subprocess 
out = subprocess.check_output(['dir'])

错误消息

文件"C:\Python36\lib\subprocess.py",第336行,check_output**kwargs). stdout

文件"C:\Python36\lib\subprocess.py",第403行,以Popen(*popenargs,**kwargs)作为进程运行:

文件“C:\Python36\lib\subprocess.py”,第707行,在init restore_signals,start_new_session中)

文件“C:\Python36\lib\subprocess.py”,第990行,位于_execute_child startupinfo中)

文件未发现错误: [Win错误 2] 系统找不到指定的文件

共有3个答案

金谭三
2023-03-14

“dir”似乎不在您的路径中。我不知道这个可执行文件在Windows上的完整路径,但也许您应该将dir替换为c:\windwos\system\dir

或者最好的解决方案是使用os模块中的函数来列出目录:

os.listdir(path)
上官斌
2023-03-14

除了@grundic

它不是一个可执行文件,而是内置在shell中的。[...]

如果你真的想执行cmd内置命令,你必须执行cmd.exe/c COMMAND_HERE在你的情况下:

import subprocess 
out = subprocess.check_output(['cmd.exe', '/c', 'dir'])

/c表示cmd。exe在执行后关闭

邵阳德
2023-03-14

它不是可执行文件,而是内置于 shell 中。Python子流程模块找不到它,所以你得到了一个错误。

如果您想使用子进程模块,请使用一些现有的二进制文件,例如python记事本ping。如果您需要列出文件夹内容,请使用os.listdiros.walk

 类似资料:
  • 我想从intelliJ运行我的spring-boot应用程序,而不是使用终端,但它不允许,它只是抛出了一大堆错误,而当我从中的终端运行时,应用程序会按预期启动。 通过intelliJ(右上角的run按钮)运行时: 但当我去跑的时候: 在终端中,我的应用程序启动,我可以开始对服务器进行http调用。

  • 当我使用以下命令运行11应用程序时: 遇到以下错误: 根据我的理解,这个异常是我的模块设置有问题,但我不清楚需要更改什么: 向以及哪些? 添加到模块使用的命令 完全不同的东西?

  • 我正在IntelliJ IDEA终极版2020.2中制作一个maven项目。这是一个多模块项目。当我从其中一个模块运行一个类时,我会收到错误,但如果我从打包的jar运行,它会运行良好。这是应用程序的结构: 这是主要的pom.xml: pom。DatabaseTier模块中的xml: pom。报告模块中的xml: 这是我得到的错误: 初始化启动层java时出错。lang.LayerInstation

  • 我已经完成了Eclipse Maven TestNG,我打算运行Selenium测试用例。 这是我的POM文件: 现在,当我尝试运行Maven测试时,我得到以下错误: 有人能告诉我我错过了什么吗。 提前谢谢。

  • 问题内容: 我正在运行用Scala 2.10.4编写的Spark作业,并在Spark 1.4.0集群(基于HDFS并由YARN管理)上运行,并在Maven存储库上使用Jackson模块2.6.1版 从我的IDE(IntelliJ IDEA v14)在本地运行代码时,所有内容均可在内存群集上运行,但是在远程群集(AWS VPC上的EMC群集)上运行作业时,出现以下异常: 我试图在网上查看异常情况,但

  • 我想使用Java中的将csv数据文件放入HBase表中。 HBase和Phoenix在Ubuntu虚拟机上运行。 从Windows运行时,会出现下一个异常: 顺便说一句,当我我的示例应用程序在Ubuntu VM上运行时,我会遇到nex异常: 其中是Ubuntu VM上的实际jar文件位置。 我在这里使用了示例。 此外,当我使用普通的JDBC通过Phoenix连接和填充表时,一切都正常。