我有一个Flask视图生成数据并用Pandas保存为CSV文件,然后显示数据。第二个视图提供生成的文件下载。我希望在下载后删除该文件。我的当前代码会引发权限错误,可能是因为after_request
在使用send_from_directory
服务之前就删除了该文件。如何在服务文件后删除它?
def process_data(data)
tempname = str(uuid4()) + '.csv'
data['text'].to_csv('samo/static/temp/{}'.format(tempname))
return file
@projects.route('/getcsv/<file>')
def getcsv(file):
@after_this_request
def cleanup(response):
os.remove('samo/static/temp/' + file)
return response
return send_from_directory(directory=cwd + '/samo/static/temp/', filename=file, as_attachment=True)