python - 系统找不到使用子进程 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 上运行
解决方案
我终于通过放弃 os 的子进程来解决这个问题
os.chdir(r"path")
os.startfile(r"file.bat")
仍然不确定为什么子进程在执行相同的任务时遇到问题。无论如何,我建议使用它,因为到目前为止它每次都有效
推荐阅读
- python - 从匿名生成器构造列表的 Pythonic 习语
- laravel - Laravel - 如何在应用服务提供商中获取用户 ID
- php - 用户删除商品时如何自动更新购物车?
- verilog - 如何修复 Xst:528 此信号连接到多个驱动程序
- asp.net-mvc - ASP.NET Web API 和 MongoDB Atlas - 从数据库中检索特定数据的方法
- python - 读取文本文件返回 UnicodeDecodeError: 'utf-8' codec can't decode byte 0x92 in Python
- c# - 未经授权的 asp.net 身份时返回字符串而不是视图
- javascript - 如何根据用户的上一页更改当前页面中的 URL 超链接?
- c - 在窗口上放置多种颜色的最有效方法是什么,尤其是逐帧格式?
- php - 计算两个表Mysql php的总价