pythonerrno 2:没有这样的文件或目录

2024-05-16 19:11:28 发布

您现在位置:Python中文网/ 问答频道 /正文

因此,我尝试使用subprocess.Popen()以“复杂”的方式打开python脚本。虽然我无法打开它,因为在我的电脑名的空间。我试过用双引号和单引号,但还是不行。你知道吗

这是我试图执行的一行代码。你知道吗

subprocess.Popen("cmd.exe /C python '\Users\Terra Byte\Desktop\jdos3\JDOS3\SYS64\bootthingy.py'")

如您所见,我使用单引号来包装目录路径,但这是执行时出现的错误。你知道吗

C:\Users\Terra Byte\Desktop\jdos3\JDOS3>python: can't open file ''\Users\Terra': [Errno 2] No such file or directory

它似乎完全忽略了我的单引号。你知道吗


Tags: 脚本方式空间byteusersfilesubprocessterra
1条回答
网友
1楼 · 发布于 2024-05-16 19:11:28

不要尝试将命令名构建为字符串。你知道吗

在这种特殊情况下,请注意单引号对windows没有保护作用(与Linux/Unix不同),这就解释了所使用的引号效率低下。使用双引号可能会奏效,但这不是最好的方法。你知道吗

当您可以传递参数列表时,千万不要使用字符串。这将起作用:

subprocess.Popen(["python",r'\Users\Terra Byte\Desktop\jdos3\JDOS3\SYS64\bootthingy.py'])
  • 使用字符串列表,不加引号,让subprocess完成这项工作
  • 去掉cmd /c前缀,因为python前缀就足够了(或者,去掉python留下["cmd","/c",让文件关联来完成这项工作)
  • 使用原始字符串前缀以避免解释反斜杠

相关问题 更多 >