首页 > 解决方案 > 系统找不到使用子进程 Popen 指定的文件,仅适用于带有简单 bat 文件的桌面

问题描述

在空闲时,我收到错误:

FileNotFoundError: [WinError 2] 系统找不到指定的文件

尝试在我的桌面上的文件夹中打开文件时。

p = Popen("open.bat", cwd=r"C:\Users\MSI\Desktop\Project")
stdout, stderr = p.communicate()

是打开文件的行。

需要注意的一点是,如果我的桌面上有一个简单的批处理文件,它只是回显一个单词,而不是另一个批处理在我的项目文件夹中执行其他操作,则此方法有效。如果我将简单的批处理文件放在我的项目文件夹中,它也不起作用。我很肯定我有正确的路径,因为我从属性窗口复制并粘贴它。我还尝试制作 bat 文件的快捷方式,但注意到它的路径与原始路径相同。

我希望脚本运行文件,所以如果有什么需要更改的,请告诉我。

PS:在 Python 3.7 上运行

标签: pythonbatch-filesubprocess

解决方案


我终于通过放弃 os 的子进程来解决这个问题

os.chdir(r"path")
os.startfile(r"file.bat")

仍然不确定为什么子进程在执行相同的任务时遇到问题。无论如何,我建议使用它,因为到目前为止它每次都有效


推荐阅读