假设我的目录script.py
中有一个脚本A/
。我还有目录B/
,它有脚本使用的文件,并且希望在其工作目录中。
我在目录starter.py
中也有一个Python源A/
,它需要Popen
命令python script.py
,这样当脚本运行时,它会有一个B/
的工作目录。
更具体地说,我有
blah/A/
- starter.py
- script.py
blah/B/
- data-file.txt
- more-data.blah
和starter.py
有一些代码
Popen(["python", "script.py"])
如何更改入门脚本,以便script.py
能够访问B/
中的数据文件?
我想到的唯一解决方案是计算数据目录和script.py
目录之间的相对路径 - 分别是A/
和B/
,这将给出一个相对目录../A/
,然后更改Popen
调用,以便它使用相对目录和B/
作为工作目录:
Popen(["python", "relative/path/to/script.py"], cwd="absolute/path/to/data/")
有更好的解决方案吗?
答案 0 :(得分:0)
除了对问题的评论中建议的内容之外,为什么不将包含输入文件的目录作为命令行参数传递给script.py
?
所以你可以这样做:
Popen(["python", "relative/path/to/script.py", "absolute/path/to/data/"])
您的绝对路径也可以是../B/