利用python跳转目录,打开文件,注意一级目录、二级目录

import os
from flask import Flask, render_template, url_for, redirect, send_from_directory
import xml.dom.minidom


app = Flask(__name__)
# 共享文件夹的根目录

root_dir = r'E:\job\hy'


@app.route('/hy')
def index():
    #返回指定的文件夹包含的文件或文件夹的名字的列表
    files = os.listdir(root_dir)
    #判断是否是目录,返回true或者false的列表
    isdir_list = gen_isdir_list(root_dir)
    return render_template("files_list.html", files=files, isdir_list=isdir_list)


@app.route('/<path:sub_dir>')
def sub_dir1_page(sub_dir):
    dir_name = root_dir + '/' + sub_dir
    files = os.listdir(dir_name)
    isdir_list = gen_isdir_list(dir_name)
    return render_template("files_list.html", files=files, isdir_list=isdir_list)


@app.route('/<path:sub_dir1>/<path:sub_dir2>')
def sub_dir2_page(sub_dir1, sub_dir2):
    dir_name = root_dir + '/' + sub_dir1 + '/' + sub_dir2
    files = os.listdir(dir_name)
    isdir_list = gen_isdir_list(dir_name)
    return render_template("files_list.html", files=files, isdir_list=isdir_list)

@app.route('/<filename>')
def download_root(filename):
    return send_from_directory(root_dir, filename)


@app.route('/<path:sub_dir>/<filename>')
def download_subdir1(sub_dir, filename):
    dir_name = root_dir + '/' + sub_dir
    return send_from_directory(dir_name, filename)


@app.route('/<path:sub_dir1>/<path:sub_dir2>/<filename>')
def download_subdir2(sub_dir1, sub_dir2, filename):
    dir_name = root_dir + '/' + sub_dir1 + '/' + sub_dir2
    return send_from_directory(dir_name, filename)


def gen_isdir_list(dir_name):
    files = os.listdir(dir_name)
    isdir_list = []
    for f in files:
        if os.path.isdir(dir_name + '/' + f):
            isdir_list.append(True)
        else:
            isdir_list.append(False)
    return isdir_list

# @app.route('/getBoundingBox')
# def get_BoundingBox():
#     # 打开xml文档
#     dom = xml.dom.minidom.parse('tilemapresource.xml')
#     # 得到文档元素对象
#     root = dom.documentElement
#     bb = root.getElementsByTagName('BoundingBox')
#     b = bb[0]
#     return b.nodeName

if __name__ == '__main__':
    app.run(debug=True,host='0.0.0.0',port=5000)
<!doctype html>
<title>Download</title>
<h1>Directory listing</h1>
<hr>
<ul>
    {% for file in files %}
        {% if isdir_list[loop.index0] %}
            <li><a href="{{file + '\\'}}">{{file+ '\\'}}</a></li>
        {% else %}
            <li><a href="{{file}}">{{file}}</a></li>
        {% endif %}
    {% endfor %}
</ul>
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值