【发布时间】:2013-09-02 13:20:00
【问题描述】:
如果我直接从它所在的目录执行它,我的 Python 脚本可以完美运行。但是,如果我退出该目录并尝试从其他地方执行它(不更改任何代码或文件位置),所有相对路径休息一下,我得到一个FileNotFoundError。
脚本位于./scripts/bin/my_script.py。有一个名为./scripts/bin/data/ 的目录。就像我说的,只要我从同一个目录执行它,它就绝对完美地工作......所以我很困惑。
成功执行(在./scripts/bin/):python my_script.py
执行失败(在./scripts/):python bin/my_script.py 和python ./bin/my_script.py
失败消息:
Traceback (most recent call last):
File "./bin/my_script.py", line 87, in <module>
run()
File "./bin/my_script.py", line 61, in run
load_data()
File "C:\Users\XXXX\Desktop\scripts\bin\tables.py", line 12, in load_data
DATA = read_file("data/my_data.txt")
File "C:\Users\XXXX\Desktop\scripts\bin\fileutil.py", line 5, in read_file
with open(filename, "r") as file:
FileNotFoundError: [Errno 2] No such file or directory: 'data/my_data.txt'
相关 Python 代码:
def read_file(filename):
with open(filename, "r") as file:
lines = [line.strip() for line in file]
return [line for line in lines if len(line) == 0 or line[0] != "#"]
def load_data():
global DATA
DATA = read_file("data/my_data.txt")
【问题讨论】:
标签: python windows batch-file relative-path