繁体   English   中英

Python - Errno 2:没有这样的文件或目录

[英]Python - Errno 2: No such file or directory

因此,我尝试使用 subprocess.Popen subprocess.Popen()以“复杂”的方式在 CMD 中打开 python 脚本。 尽管由于我的 PC 名称中有空格,我无法打开它。 我试过使用双引号和单引号,但它仍然不起作用。

这是我试图执行的代码行。

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

它似乎完全忽略了我的单引号。

切勿尝试将您的命令名称构建为字符串

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

当您可以传递 arguments 的列表时,切勿使用字符串。 这将起作用:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM