问题描述
在过去的几天里,我一直在尝试弄清楚如何在我的Python项目中处理FileNotFoundError
。这是一个Flask应用程序,但是问题应该适用于类似的目录结构。
我的目录结构如下:
app/
pdf_report.py
files/
icon.png
webapp/
flask_app.py
/templates
def generate_pdf():
with open("files/icon.png") as file:
return make_pdf()
问题是当我从webapp/flask_app.py
调用该函数时,该函数将不起作用:
from pdf_report import generate_pdf
generate_pdf()
很明显,这是因为Active Directory为webapp/
,并且files/icon.png
中没有webapp/
文件路径。
我应该如何解决这个问题?
解决方法
您应该将绝对路径传递到pdf文件。
import os
def generate_pdf():
working_directory = os.getcwd().replace('webapp','app')
file_path = os.path.join(working_directory,'files/icon.png')
with open(file_path) as file:
return make_pdf()
,
尝试在配置文件或 init .py中添加app.config ['filepath'] ='absolute / path / to / files / dir' 然后执行以下操作:
def generate_pdf():
with open(app.config['filepath']+'/icon.png') as file:
return make_pdf()