subprocess.Popen [Errno 2]没有这样的文件或目录

时间:2018-06-27 17:37:25

标签: python subprocess

我处理Stream中使用的一些脚本。我做了一些,现在我尝试做一个启动器,以集中所有脚本。

我认为子流程进展顺利,但是atm遇到了一些困难。

我尝试使用此行启动脚本:

subprocess.Popen(['python', "E:/path/rocksmith/rocksmith.pyw"], shell=True)

但是python给我没有这样的文件或目录错误。 在我要启动的脚本中(rocksmith.pyw),我使用open()打开了一些文本文件,我猜python无法找到.txt文件,因为.txt不在启动器目录中了吗?

我的目录是这样的:

Launcher folder
 - launcher.py
   * Script 1 folder
     - Script1.py
     - text.txt
   * Script 2 folder
     - Script2.py
     - text.txt
   * Script 3 folder
     - Script3.py
     - image.gif

我不知道我的解释是否正确。 我只是想在“超级脚本”中启动一些脚本。

谢谢。

1 个答案:

答案 0 :(得分:0)

如果rocksmith.pyw尝试打开文件时发生错误,则可能要对cwd使用Popen kwarg。这将从运行脚本的位置更改工作目录,以便rocksmith.pyw中的相对路径将按您期望的方式解析。

subprocess.Popen(['python', "E:/path/rocksmith/rocksmith.pyw"], cwd='/path/to/rocksmith/stuff')