如何读取PyDev环境变量中指定的文件

时间:2013-04-02 15:34:24

标签: eclipse file-io pydev

My Project Euler设置是一个PyDev项目,我从两台不同的计算机上工作(一台是Mac,另一台是Windows 7)。项目的文件结构如下所示:

PROJECT_LOC/
  unsolved/
    The .py files for the problems I haven't solved
  solved/
    Problems_001_025/
      .py files for problems 1-25
  ... etc ...
  texts/
    Any input files provided by Project Euler (e.g., Problem 22)

每个文件都以模式Problem###.pyProblem###.txt命名。

解决问题后,我将其从unsolved移至solved中的正确目录,这是我遇到困难的地方:

考虑到输入问题,请说Problem022.py

for line in open("../texts/Problem022.txt"):
    # read file in
# code to solve the problem

由于我在前一段时间内解决了问题22,因此我将其从PROJECT_LOC/unsolved/移至PROJECT_LOC/solved/Problems_001_025/。现在,(毫不奇怪)当我再次尝试运行它时,它给了我一个没有这样的文件错误。

所以,没有更改我的文件结构,我是否有办法从项目目录中的任何地方访问输入文本文件?

我以为我可以做open(${PROJECT_LOC}/texts)这样的事情,但是我不知道如何在运行时从Eclipse获取PROJECT_LOC,并且它可以在Windows和OS X上运行。我玩过与what this person did in his question,但无法让它为我工作。

1 个答案:

答案 0 :(得分:1)

我明白了......

我在Eclipse首选项中为解释器添加了一个值为${PROJECT_LOC:texts}/的环境变量。我现在可以使用os.environ["PROJECT_EULER_TEXT_FILES"]来提取输入的位置。