0

我的 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/. 现在,(毫不奇怪)当我尝试再次运行它时,它给了我一个 no such file 错误。

那么,在不改变我的文件结构的情况下,有没有办法让我从我在项目目录中的任何位置访问输入文本文件?

我在想我可以做类似的事情open(${PROJECT_LOC}/texts),但我不知道如何PROJECT_LOC在运行时从 Eclipse 获取,并让它在 Windows 和 OS X 上运行。我玩过这个人在他的问题中所做的事情,但不能让它为我工作。

4

1 回答 1

1

我想到了...

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

于 2013-04-02T18:36:57.187 回答