在目录

时间:2015-12-09 07:55:26

标签: python path

假设我的目录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/")

有更好的解决方案吗?

1 个答案:

答案 0 :(得分:0)

除了对问题的评论中建议的内容之外,为什么不将包含输入文件的目录作为命令行参数传递给script.py
所以你可以这样做:

Popen(["python", "relative/path/to/script.py", "absolute/path/to/data/"])

您的绝对路径也可以是../B/