最佳答案
假设我有一个 Python 项目,其结构如下:
project
/data
test.csv
/package
__init__.py
module.py
main.py
返回文章页面
from .module import test
返回文章页面
import csv
with open("..data/test.csv") as f:
test = [line for line in csv.reader(f)]
返回文章页面
import package
print(package.test)
当我运行 main.py
时,我得到以下错误:
C:\Users\Patrick\Desktop\project>python main.py
Traceback (most recent call last):
File "main.py", line 1, in <module>
import package
File "C:\Users\Patrick\Desktop\project\package\__init__.py", line 1, in <module>
from .module import test
File "C:\Users\Patrick\Desktop\project\package\module.py", line 3, in <module>
with open("../data/test.csv") as f:
FileNotFoundError: [Errno 2] No such file or directory: '../data/test.csv'
但是,如果从 package
目录运行 module.py
,则不会得到任何错误。所以看起来 open(...)
中使用的相对路径只是相对于原始文件从哪里运行(即 __name__ == "__main__"
) ?我不想使用绝对路径。有什么办法可以解决这个问题呢?