python遍历目录文件_结合vue获取所有的html文件并且展示

简介: python遍历目录文件_结合vue获取所有的html文件并且展示

前言

大家好,我是yma16,

listdir、isdir函数使用

在Python中,os模块中的listdir和isdir函数用于操作文件和目录。

listdir函数返回指定路径下的所有文件和目录的列表。

示例代码:

import os
path = '/path/to/directory'
dir_list = os.listdir(path)
print(dir_list)

isdir函数判断指定路径是否为一个目录。

示例代码:

import os
path = '/path/to/directory'
is_dir = os.path.isdir(path)
if is_dir:
    print(path, 'is a directory')
else:
    print(path, 'is not a directory')

listdir

返回目录下一级文件夹或则文件的数组对象

isdir

判断是否为目录,否则为文件,返回true或false

提取html文件的路径和html文件名的名字

思路:遍历目录下的所有路径,遇到目录递归返回函数继续执行,否者判断为文件,当获得文件时,需要判断其后缀是否为html,所以使用到endswith函数

# 读取路径 传入三个参数 分别 路径、路径保存变量、文件名保存变量
def traverse(f,temp,title):
    try:
        fs = os.listdir(f)
        for f1 in fs:
            tmp_path = os.path.join(f, f1)
            if not os.path.isdir(tmp_path):
                print('文件名: %s' % f1)
                print('文件: %s' % tmp_path)
                s=str(f1)
                if  s.endswith('html'):#
                    #路径处理
                    s_path=str(tmp_path)
                    print('原始',s_path)
                    s_get=s_path.replace('\\','/')
                    print('替换\\',s_path,s_get)
                    s_get=s_get[1:]
                    print('切片',s_get)
                    temp.append(s_get)
                    #标题处理
                    #切片
                    t=s[:len(s)-5]
                    print(t)
                    title.append(t)
            else:
                print('文件夹:%s' % tmp_path)
                traverse(tmp_path,temp,title)
                # 递归
    except Exception as e:
        print(e)
    finally:
        return temp

django的视图函数

返回json数据类型

from django.http import JsonResponse#json
import os
def html_path(request):
    path_data=[]# 路径
    title_data = []  # 标题
    path = './static/Csslearn'
    p_data=traverse(path,path_data,title_data)#路径、标题处理
    data={
        'code':1,'path':p_data,'title':title_data
    }
    return JsonResponse(data)
# 读取路径
def traverse(f,temp,title):
    try:
        fs = os.listdir(f)
        for f1 in fs:
            tmp_path = os.path.join(f, f1)
            if not os.path.isdir(tmp_path):
                print('文件名: %s' % f1)
                print('文件: %s' % tmp_path)
                s=str(f1)
                if  s.endswith('html'):#
                    #路径处理
                    s_path=str(tmp_path)
                    print('原始',s_path)
                    s_get=s_path.replace('\\','/')
                    print('替换\\',s_path,s_get)
                    s_get=s_get[1:]
                    print('切片',s_get)
                    temp.append(s_get)
                    #标题处理
                    #切片
                    t=s[:len(s)-5]
                    print(t)
                    title.append(t)
            else:
                print('文件夹:%s' % tmp_path)
                traverse(tmp_path,temp,title)
                # 递归
    except Exception as e:
        print(e)
    finally:
        return temp

vue2的处理

axios发送get请求

axios发送请求给django,得到关于html的json数据格式

data() {
    return {
      msg: "css练习:",
      css_length: "",
      baseurl: "http://127.0.0.1:1998",
      css_title: [],
      css_path: [],
      ifreame_content: "",
      look_i:'浏览:',
      now_title:'',
    };
  },
  methods: {
    get_ifreame: function (index) {
      let that = this; //that
      that.ifreame_content = that.css_path[index];//路径
      that.now_title=index+1+'. '+that.css_title[index];//标题
    },
    getCss: function () {
      let that = this;
      axios
        .get(that.baseurl + "/css/")
        .then((res) => {
          console.log("get返回", res);
          let getdata = res.data;
          let css_path = getdata.path;
          let css_title = getdata.title;
          console.log(css_path, css_title);
          // 路径处理
          css_path.map((o) => {
            let temp = that.baseurl + o;
            that.css_path.push(temp);
          });
          // 标题传递
          that.css_title = css_title;
          console.log(that.css_path, that.css_title);
          // 传递第一个路html路径
          that.ifreame_content = that.css_path[0];
          // 传递长度
          that.css_length = css_title.length;
          that.now_title=css_title.length>0? 1+'. '+css_title[0]:'';//标题加序号
        })
        .catch((error) => {
          console.log("get错误!", error);
        });
    },
  },

绑定src属性

ifreame 绑定src参数即可

<!-- 绑定src参数 -->
<iframe v-bind:src="ifreame_content"></iframe>

效果

查看

结束

本文分享到这结束,如有错误或者不足之处欢迎指出,感谢大家的阅读!

目录
相关文章
|
2月前
|
数据可视化 Linux iOS开发
Python脚本转EXE文件实战指南:从原理到操作全解析
本教程详解如何将Python脚本打包为EXE文件,涵盖PyInstaller、auto-py-to-exe和cx_Freeze三种工具,包含实战案例与常见问题解决方案,助你轻松发布独立运行的Python程序。
897 2
|
1月前
|
监控 机器人 编译器
如何将python代码打包成exe文件---PyInstaller打包之神
PyInstaller可将Python程序打包为独立可执行文件,无需用户安装Python环境。它自动分析代码依赖,整合解释器、库及资源,支持一键生成exe,方便分发。使用pip安装后,通过简单命令即可完成打包,适合各类项目部署。
|
3月前
|
缓存 数据可视化 Linux
Python文件/目录比较实战:排除特定类型的实用技巧
本文通过四个实战案例,详解如何使用Python比较目录差异并灵活排除特定文件,涵盖基础比较、大文件处理、跨平台适配与可视化报告生成,助力开发者高效完成目录同步与数据校验任务。
149 0
|
4月前
|
编译器 Python
如何利用Python批量重命名PDF文件
本文介绍了如何使用Python提取PDF内容并用于文件重命名。通过安装Python环境、PyCharm编译器及Jupyter Notebook,结合tabula库实现PDF数据读取与处理,并提供代码示例与参考文献。
|
4月前
|
编译器 Python
如何利用Python批量重命名文件
本文介绍了如何使用Python和PyCharm对文件进行批量重命名,包括文件名前后互换、按特定字符调整顺序等实用技巧,并提供了完整代码示例。同时推荐了第三方工具Bulk Rename Utility,便于无需编程实现高效重命名。适用于需要处理大量文件命名的场景,提升工作效率。
|
4月前
|
安全 Linux 网络安全
Python极速搭建局域网文件共享服务器:一行命令实现HTTPS安全传输
本文介绍如何利用Python的http.server模块,通过一行命令快速搭建支持HTTPS的安全文件下载服务器,无需第三方工具,3分钟部署,保障局域网文件共享的隐私与安全。
935 0
|
4月前
|
数据管理 开发工具 索引
在Python中借助Everything工具实现高效文件搜索的方法
使用上述方法,你就能在Python中利用Everything的强大搜索能力实现快速的文件搜索,这对于需要在大量文件中进行快速查找的场景尤其有用。此外,利用Python脚本可以灵活地将这一功能集成到更复杂的应用程序中,增强了自动化处理和数据管理的能力。
320 0
|
5月前
|
编解码 Prometheus Java
当Python同时操作1000个文件时,为什么你的CPU只用了10%?
本文介绍如何构建一个高效的文件处理系统,解决单线程效率低、多线程易崩溃的矛盾。通过异步队列与多线程池结合,实现任务调度优化,提升I/O密集型操作的性能。
124 4
|
4月前
|
数据采集 监控 算法
Python文件与目录比较全攻略:从基础操作到性能优化
文件比较的核心在于数据指纹校验,通过逐字节比对生成唯一标识,确保内容一致性。从标准库的os与filecmp到高性能第三方库如pydiffx,再到分布式与量子加密技术的未来趋势,文件比较广泛应用于数据备份、代码审查与系统监控等领域,是保障数据完整性的关键技术手段。
107 0
|
5月前
|
数据采集 存储 API
Python爬虫结合API接口批量获取PDF文件
Python爬虫结合API接口批量获取PDF文件