我正在尝试打包我的代码,并且我有一个类似
的结构proj
|---- __init__.py
|---- main.py
|---- data
|---- file_to_read.csv
我正在尝试在./data/file_to_read.csv
中使用路径main.py
。但是,由于出现诸如FileNotFoundError: [Errno 2] No such file or directory:
之类的错误,因此无法正常工作。那我该怎么办?
答案 0 :(得分:1)
在main.py
中,main.py
本身的路径可用作__file__
变量。您可以使用它来构造其他文件的路径,这些文件您知道相对于main.py
的位置。对于您来说,到file_to_read.csv
的路径可以计算为:
os.path.join(os.path.dirname(__file__), 'data', 'file_to_read.csv')
答案 1 :(得分:0)
请尝试漂亮的pathlib
库。
├── __init__.py
├── data
│ └── file_to_read.csv
└── main.py
a,b
c,d
import pathlib
file_path = pathlib.Path(__file__).parents[0].absolute()
data_path = file_path / 'data/file_to_read.csv'
with open(str(data_path)) as data_file:
data = data_file.read().rstrip()
print(data)
$ python main.py
a,b
c,d