Python文件夹遍历

常用到文件夹遍历操作,会对文件进行如下操作:

  • 文件夹数量
  • 文件数量
  • 文件类型及各类型数量
  • 文件属性:大小、创建日期、最后修改日期

0. 基本分析

  • 使用 os lib
    import osfrom os.path import join, getsize# yields a 3-tuple dirpath, dirnames, filenames
    for root, dirs, files in os.walk('python/Lib/email'):print(root, "consumes", end="")print(sum(getsize(join(root, name)) for name in files), end="")print("bytes in", len(files), "non-directory files")if 'CVS' in dirs:dirs.remove('CVS')  # don't visit CVS directories
  • 使用 glob
    import glob
    import osfiles = glob.glob("H:\Del\logs\**")  
    for file in files:if os.path.isdir(file):sub_file = glob.glob(os.path.abspath(file)+"\**")for f in sub_file:files.append(f)else:print(file)>>>>>>>>> result
    H:\Del\logs\log.html
    H:\Del\logs\output.xml
    H:\Del\logs\report.html
    H:\Del\logs\log01\log01.txt
    H:\Del\logs\log01\log02\log02.txt
    H:\Del\logs\log01\log02\log03\log03.txt
  • 使用 CSDN 创作助手 和 百度 文心一言分别提问

1. 使用 CSDN 创作助手

    - 提问  python 遍历文件夹

可以使用os模块和os.walk()函数来遍历文件夹。下面是一个例子:import os# 定义文件夹路径
folder_path = '/path/to/folder/'   # replaced: "H:\Del\logs"# 使用os.walk()函数来遍历文件夹
for root, dirs, files in os.walk(folder_path):for file in files:file_path = os.path.join(root, file)# 处理文件操作print(file_path)在代码中,首先定义了要遍历的文件夹路径 folder_path。
然后使用 os.walk() 函数来遍历文件夹,其中的 for 循环用于遍历文件夹中的文件,
os.path.join() 函数用于构造完整的文件路径。你可以在处理文件操作中进行一些自己的操作。>>>>>>>> result
H:\Del\logs\log.html
H:\Del\logs\output.xml
H:\Del\logs\report.html
H:\Del\logs\log01\log01.txt

 2. 使用文心一言提问

     - 提问  python 遍历文件夹

在Python中,你可以使用os模块的os.walk()函数来遍历文件夹。
这个函数会遍历给定的目录以及所有子目录,并生成每个目录的路径。下面是一个使用os.walk()的简单例子:import os  def traverse_folder(path):  for dirpath, dirnames, filenames in os.walk(path):  print(dirpath)  for filename in filenames:  print(os.path.join(dirpath, filename))  traverse_folder('/path/to/your/folder')   # replaced: 'H:\Del\logs'
在这个例子中,os.walk()生成的是一个三元组:目录路径、目录名称列表和文件名称列表。
我们首先打印出每个目录的路径,然后遍历该目录下的文件名称列表,并打印出每个文件的完整路径。>>>>>>> result
H:\Del\logs
H:\Del\logs\log.html
H:\Del\logs\output.xml
H:\Del\logs\report.html
H:\Del\logs\log01
H:\Del\logs\log01\log01.txt你也可以使用os.listdir()函数来列出指定目录中的所有文件和文件夹的名称,然后使用循环来遍历它们。
但是,这个函数不会递归地遍历子目录。import os  def traverse_folder(path):  for filename in os.listdir(path):  full_path = os.path.join(path, filename)  if os.path.isdir(full_path):  traverse_folder(full_path)  # 递归遍历子目录  else:  print(full_path)  traverse_folder('/path/to/your/folder')  # replaced: 'H:\Del\logs'>>>>>>> result
H:\Del\logs\log.html
H:\Del\logs\log01\log01.txt
H:\Del\logs\output.xml
H:\Del\logs\report.html在这个例子中,我们首先使用os.listdir()列出给定目录中的所有文件和文件夹的名称,
然后使用os.path.join()将目录路径和文件名组合成完整的文件路径。
如果路径是一个目录,我们递归地调用traverse_folder()来遍历该目录的子目录,
否则我们直接打印出文件的路径。

3. 最佳方案

    基本算法逻辑,稍经改造即可适用,对采用CVS的程序员来讲是福音,也将是灾难,会被替代吗?

import os  cdir = 0
cfile = 0
def traverse_folder(path):  for dirpath, dirnames, filenames in os.walk(path):global cdircdir = cdir + 1        print(dirpath, ' - ',dirnames)for filename in filenames:global cfilecfile = cfile + 1print(os.path.join(dirpath, filename))  traverse_folder('H:\Del\logs')
print("Folder:", cdir, ' - ', "File: ", cfile)

4. 个人理解

    GPT,Generative Pre-Trained Transformer(生成式预训练Transformer模型)
    生成式AI的产生,是编程语言基本操作、学习的又一重要方式,应当会进一步降低开发语言的学习难度

  • 基于历史的而非未发生的
  • 基于大数据训练,也许各种语言的标准帮助文档会成为最佳实践
  • 快速查询并生成最佳的代码实践,当然所用的生成式AI要有足够多的数据训练
  • 生成式AI应当会越来越狡猾,给出的回复除了正确答案外,自生成的逻辑会越来越严密难于判断
  • 生成式AI会是人类最佳实践的集合吗?
  • 如何给生成式AI一个更难的题目,测试其成长过程?
  • 如何完整的测试生成式AI?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/64755.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Scala的隐式转换

Scala的隐式转换 隐式转换概念 在 Scala 中,隐式转换(Implicit Conversion)是一种特性,它允许编译器在需要某种类型时自动进行类型转换。隐式转换的主要作用是增强现有类型的功能或使类型之间的转换更方便。 隐式转换的使用场景…

Android Retrofit 高级使用与原理

简介 在 Android 开发中,网络请求是一个极为关键的部分。Retrofit 作为一个强大的网络请求库,能够简化开发流程,提供高效的网络请求能力。本文将深入介绍 Retrofit 的高级使用与原理,帮助读者更全面地理解和应用这一库。 什么是…

【Java 动态数据统计图】动态数据统计思路案例(动态,排序,动态数组(重点推荐))七(129)

需求:前端根据后端的返回数据:画统计图; 说明: 1.X轴为地域,Y轴为地域出现的次数; 2. 动态展示(有地域展示,没有不展示,且高低排序) Demo案例: …

uniapp onLoad生命周期 uni.$on接受参数无法改变data数据解决办法

问题阐述: a: uni.$emit(name,data)uni.navigateTo({url:b})b:onload(){ uni.$on(name,(res)>{ this.nameres console.log(this.name) })}用以上写法来跨页面传参会发现在b页面,虽然能够接受到参数但是赋值到data时候没生效,虽然控制台能…

2023开学礼《乡村振兴战略下传统村落文化旅游设计》许少辉八一新书江西师范大学图书馆

2023开学礼《乡村振兴战略下传统村落文化旅游设计》许少辉八一新书江西师范大学图书馆

MyBatisPlus简单入门

1、简单介绍MyBatisPlus MyBatisPlus是一个MyBatis的增强工具,在MyBatis的基础上只做增强不做改变,完全去SQL化,封装好了大量的CRUD操作。甚至吧CRUD操作封装到了Service层,可以直接在Controller调用现成的CRUD服务层&#xff0c…

Ubuntu 启动出现grub rescue

​ 一,原因 原因:出现 “grub rescue” 错误通常表示您的计算机无法正常引导到操作系统,而是进入了 GRUB(Grand Unified Bootloader)紧急模式。这可能是由于引导加载程序配置错误、硬盘驱动器损坏或其他引导问题引起…

excel中公式结合实际的数据提取出公式计算的分支

要在Excel中使用公式结合实际数据提取分支信息,您可以使用一些文本函数和条件函数来实现这个目标。以下是一个示例,假设您有一个包含银行交易描述的列A,想要从中提取分支信息: 假设交易描述的格式是"分行名称-交易类型"…

springboot1.5.12升级至2.6.15

首先&#xff0c;加入springboot升级大版本依赖&#xff0c;会在升级过程中打印出错日志提示&#xff08;升级完毕可去除&#xff09; <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-properties-migrator</art…

数据结构day05(单链表)

今日任务&#xff1a; 思维导图&#xff1a; 实现 代码&#xff1a;&#xff08;多文件&#xff09; head.h #ifndef __HEAD_H__ #define __HEAD_H__#include <stdio.h> #include <string.h> #include <stdlib.h> typedef int datatype;typedef struct Lin…

win10+QT5.15+cryptopp562 完整配置开发

1、准备如下几项内容&#xff1a; a、WIN10环境下的QT5.15.2安装包&#xff0c;QTCreator对应版本安装。&#xff08;自行安装&#xff09; b、cryptopp562安装包下载&#xff0c;官网&#xff1a;https://www.cryptopp.com/&#xff0c;这里没选择最新的8.7是因为mingw-32编译…

Viva Workplace Analytics Employee Feedback SU Viva Glint部署方案

目录 一、Viva Workplace Analytics & Employee Feedback SU Viva Glint介绍 二、Viva Glint和Viva Pulse特点和优势 1. 简单易用

在R中安装TensorFlow、TensorFlow_Probability、numpy(R与Python系列第二篇)

目录 前言&#xff1a; 1-安装tensorflow库 Step1: 下载R包tensorflow Step2&#xff1a;安装TensorFlow库 Step3&#xff1a;导入R中 2-安装tensorflow_probability库 Step1&#xff1a;下载R包&#xff1a;tfprobability Step2&#xff1a;安装TensorFlow Probability …

【CSS】em单位的理解

1、em单位的定义 MDN的解释&#xff1a;它是相对于父元素的字体大小的一个单位。 例如&#xff1a;父元素font-size&#xff1a;16px&#xff1b;子元素的font-size&#xff1a;2em&#xff08;也就是32px&#xff09; 注&#xff1a;有一个误区&#xff0c;虽然他是一个相对…

代码随想录day25

216.组合总和III ● 力扣题目链接 ● 找出所有相加之和为 n 的 k 个数的组合。组合中只允许含有 1 - 9 的正整数&#xff0c;并且每种组合中不存在重复的数字。 思路 ● 和上题差不多&#xff0c;只不过多了一个条件限制 ● 时间复杂度&#xff1a;O(n * 2^n) 代码 class …

HTTP Get 和 Post 的区别

分析&回答 使用规范 根据HTTP规范&#xff0c;GET用于信息获取&#xff0c;而且应该是安全的和幂等的。 根据HTTP规范&#xff0c;POST表示可能修改变服务器上的资源的请求。 传递参数 GET请求的数据会附在URL之后&#xff08;就是把数据放置在HTTP协议头中&#xff09;。…

基于Kohonen网络的聚类算法

1.案例背景 1.1 Kohonen网络 Kohonen网络是自组织竞争型神经网络的一种,该网络为无监督学习网络,能够识别环境特征并自动聚类。Kohonen神经网络是芬兰赫尔辛基大学教授Teuvo Kohonen 提出的,该网络通过自组织特征映射调整网络权值,使神经网络收敛于一种表示形态。在这一形态中…

EG1164大功率同步整流升压模块开源,最高效率97%

EG1164大功率同步整流Boost升压电源模块&#xff0c;最高效率97%&#xff0c;输入电压8~50V&#xff0c;输出电压8~60V可调&#xff0c;最大功率300瓦以上&#xff0c;开关频率219kHz。 白嫖了张嘉立创的彩色丝印券就随便画了个板试试&#xff0c;第一次打彩色丝印。 因为我测…

Mongodb常见操作命令

一、登录相关以及启动 启动服务mongodb&#xff1a; cd /usr/local/mongodb/bin ./mongod -f /data/mongodb/mongodb1.conf./mongod -f /data/mongodb/mongodb2.conf./mongod -f /data/mongodb/mongodb3.conf 登录mongodb数据库&#xff08;mongodb默认端口:27017&#xff0…

ORA-00600之数据库内部BUG 22114696

ORA-00600之数据库内部BUG 22114696 错误信息Bug信息应对办法 错误信息 应用包运行时收到报错信息如下&#xff1a; ORA-00600: internal error code, arguments: [4450],[kpotx.c],[2866],[],… ORA-02063: preceding line from DW_JOB_PROD line ORA-06512: line at "…