从导入模块的目录中读取文件
Reading a file from the directory which module is imported
我正在尝试读取我在 Python 中创建的自定义模块中的文件。但是当我尝试这样做时它显示错误。
目录结构
base/
|
|_ app.py
|_ cmod/
|
|_ __init__.py
|_ util.py
|_ db.csv
util.py
片段
from csvhandler import CSVFile
def get_db():
with open("db.csv", "r+") as db:
data = CSVFile(db)
return data
app.py
片段
from cmod import util
data = util.get_db()
它抛出以下错误
FileNotFoundError: [Errno 2] No such file or directory: 'db.csv'
placement导入有问题吗?
注意:db.csv
必须放在那里。
你 运行 时的当前工作目录这很可能是 app.py 所在的目录。open() 在当前工作目录中查找文件,而不是当前正在执行的文件的目录。
打开相对存储的文件最便携的方法是获取 python 文件的完整路径,隔离目录,然后加入它。
util.py
import os
def get_db():
directory = os.path.dirname(__file__)
with open(os.path.join(directory, "db.csv"), "r+") as db:
data = CSVFile(db)
return data
我正在尝试读取我在 Python 中创建的自定义模块中的文件。但是当我尝试这样做时它显示错误。
目录结构
base/
|
|_ app.py
|_ cmod/
|
|_ __init__.py
|_ util.py
|_ db.csv
util.py
片段
from csvhandler import CSVFile
def get_db():
with open("db.csv", "r+") as db:
data = CSVFile(db)
return data
app.py
片段
from cmod import util
data = util.get_db()
它抛出以下错误
FileNotFoundError: [Errno 2] No such file or directory: 'db.csv'
placement导入有问题吗?
注意:db.csv
必须放在那里。
你 运行 时的当前工作目录这很可能是 app.py 所在的目录。open() 在当前工作目录中查找文件,而不是当前正在执行的文件的目录。
打开相对存储的文件最便携的方法是获取 python 文件的完整路径,隔离目录,然后加入它。
util.py
import os
def get_db():
directory = os.path.dirname(__file__)
with open(os.path.join(directory, "db.csv"), "r+") as db:
data = CSVFile(db)
return data