Python-错误2 : No such file or directory

标签 python cmd errno

所以,我尝试使用 subprocess.Popen() 以“复杂”的方式在 CMD 中打开 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

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

最佳答案

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

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

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

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

关于Python-错误2 : No such file or directory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58401662/

相关文章:

python - 正则表达式否定捕获组返回答案

python - 使用文件转换器时 PyPy 比 CPython 慢

python - 禁用 Shutil.copy 中的 SameFileError 异常

batch-file - 从 %CD% 的路径获取目录名称

java - 有没有办法找出CMD中命令的图像路径?

c - 如何将我的错误描述添加到 perror 函数

python - 如何从类中调用外部函数 - python

python - 为什么在 cmd.Cmd 子类函数中退出 ipdb 会退出函数?

c - errno: 38 (Function not implemented) 在调用更改 sysctl 值时

mysql - 错误 1005 (HY000) : Can't create table 'nortus.#sql-4e0_28' (errno: 150)