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###.py
或Problem###.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,但无法让它为我工作。
答案 0 :(得分:1)
我明白了......
我在Eclipse首选项中为解释器添加了一个值为${PROJECT_LOC:texts}/
的环境变量。我现在可以使用os.environ["PROJECT_EULER_TEXT_FILES"]
来提取输入的位置。