我的 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/
. 现在,(毫不奇怪)当我尝试再次运行它时,它给了我一个 no such file 错误。
那么,在不改变我的文件结构的情况下,有没有办法让我从我在项目目录中的任何位置访问输入文本文件?
我在想我可以做类似的事情open(${PROJECT_LOC}/texts)
,但我不知道如何PROJECT_LOC
在运行时从 Eclipse 获取,并让它在 Windows 和 OS X 上运行。我玩过这个人在他的问题中所做的事情,但不能让它为我工作。