Eclipse 如何读取PyDev环境变量中指定的文件
我的Project Euler安装程序是一个PyDev项目,我在两台不同的计算机(一台是Mac,另一台是Windows 7)上工作。项目的文件结构如下所示:Eclipse 如何读取PyDev环境变量中指定的文件,eclipse,file-io,pydev,Eclipse,File Io,Pydev,我的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/ A
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
命名
一旦我解决了一个问题,我会将它从未解决的
移动到已解决的
中的正确目录,这就是我的困难所在:
如果输入有问题,请说Problem022.py
:
for line in open("../texts/Problem022.txt"):
# read file in
# code to solve the problem
因为前一段时间我解决了问题22,所以我将它从PROJECT\u LOC/unsolved/
移动到PROJECT\u LOC/solved/Problems\u 001\u 025/
。现在,(毫不奇怪)当我再次尝试运行它时,它不会给我这样的文件错误
那么,在不改变文件结构的情况下,有没有办法从项目目录中的任何位置访问输入文本文件
我想我可以做一些类似于open(${PROJECT\u LOC}/text)
,但我不知道如何在运行时从Eclipse获得PROJECT\u LOC
,并让它在Windows和OS X上工作。我玩过,但无法让它为我工作。我想出来了
我在Eclipse首选项中向解释器添加了一个值为${PROJECT\u LOC:text}/
的环境变量。我现在可以使用os.environ[“PROJECT\u EULER\u TEXT\u FILES”]
来提取输入的位置