我无法从子目录下载csv,但可以从主目录下载。
我尝试将路由更改为子目录,但会引发404错误。
@app.route('/', defaults={'req_path': 'Categorized%20Output/2019-06-27'})
@app.route('/<path:req_path>')
def index(req_path):
# data = dataset.html
#return dataset.html
folderLocation = os.path.dirname(__file__)
print(folderLocation)
abs_path = os.path.join(folderLocation,req_path)
print(abs_path)
# Return 404 if path doesn't exist
if not os.path.exists(abs_path):
return abort(404)
# Check if path is a file and serve
if os.path.isfile(abs_path):
return send_file(abs_path)
# Show directory contents
files = os.listdir(abs_path)
return render_template('index.html',files = files)
if __name__ == "__main__":
app.run()
我的CSV文件位于Folder位置/分类输出/日期文件夹的许多子文件夹中,这些子文件夹被命名为不同的日期 /
模板中的index.html文件
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<link rel=stylesheet type=text/css href="{{ url_for('static', filename='css/style.css') }}"/>
<title>Show CSV</title>
</head>
<body>
<div class="table">
<ul>
{% for file in files %}
<li><a href="{{ file }}">{{ file }}</a></li>
{% endfor %}
</ul>
</div>
</body>
我希望能够从所有不同的日期子文件夹下载CSV。 CSV位置的示例是:“ 127.0.0.1:5000/Categorized%20Output/2019-06-27”
答案 0 :(得分:-1)
最近我找到了一种使用easygui来抓取文件/目录的便捷方法。
pip install easygui
import easygui
@app.route('/')
def index():
get_a_file = easygui.fileopenbox()
files = get_a_file # do some stuff with your file
return render_template('index.html', files=files)
此答案不能解决问题的根源,但如果有帮助,并且您有兴趣,可以阅读easygui documentation。
如果要从特定目录开始,则可以自定义fileopenbox,例如。.
files = easygui.fileopenbox(msg='some message',
title='some title', default='c:\some_directory\some_directory\*.file_type',
filetype='*.file_type')
其中file_type是任何类型的文件。.txt,.dat等,