python中的管理文件神器 os.walk

os.walk()的详细理解(秒懂) Python中os.walk()的详细理解 1. os.walk()参数的含义2. 代码检验2.1 先看第一次遍历:2.2 再看第二次遍历:2.3 再看第三次遍历:2.4 最后看第四次遍历:3. 总结 反正最近文件夹名字操作要了我的老命,所以总结下这个方法的使用。 1. os.walk()参数的含义 root:Prints out directories only from what you specified. dirs:Prints out sub-directories from root. fil 阅读详情

有没有想过用python写一个文件管理程序?听起来似乎没思路?其实是可以的,因为python已经为你准备好了神器os.walk,进来看看吧!

python中os.walk是一个简单易用的文件、目录遍历器,可以帮助我们高效的处理文件、目录方面的事情。

本文将详细介绍os.walk模块,最后使用os.walk模块实现一个在指定日志整理文件的程序。

一、 基本介绍

os.walk():扫描某个指定目录下所包含的子目录和文件,返回的是一个迭代器。

二、 基本使用

假设文件夹data有如下的目录结构(cmd 命令:tree /f)

在这里插入图片描述

2.1扫描所有文件

扫描内容:

子文件夹和文件

子文件夹下的文件

输出内容:

文件夹名称/文件名称

扫描路径:

自顶向下 topdown=True(默认)

自底向上 topdown=False

码字不易废话两句:有需要学习资料的或者有技术问题交流“点击”即可

from os import walk
path="data"
for curDir, dirs, files in walk(path):
#for curDir, dirs, files in walk(path,topdown=False):
    print("现在的目录:" ,curDir)
    print("该目录下包含的子目录:" , str(dirs))
    print("该目录下包含的文件:",str(files))
    print("*"*20)

自顶向下扫描结果:

现在的目录:data
该目录下包含的子目录:['testA', 'testB', 'testC']
该目录下包含的文件:['2020-07-12 - 第一层.xlsx', '2020-07-13 - 第一层.xlsx', '2020-07-14 - 第一层.xlsx']
********************
现在的目录:data\testA
该目录下包含的子目录:[]
该目录下包含的文件:['2020-07-12-A.xlsx', '2020-07-13-A.xlsx', '2020-07-14-A.xlsx']
********************
现在的目录:data\testB
该目录下包含的子目录:[]
该目录下包含的文件:['2020-07-12-B.xlsx', '2020-07-13-B.xlsx', '2020-07-14-B.xlsx']
********************
现在的目录:data\testC
该目录下包含的子目录:[]
该目录下包含的文件:['2020-07-12-C.xlsx', '2020-07-13-C.xlsx', '2020-07-14-C.xlsx']
********************

自底向上扫描结果:

现在的目录:data\testA
该目录下包含的子目录:[]
该目录下包含的文件:['2020-07-12-A.xlsx', '2020-07-13-A.xlsx', '2020-07-14-A.xlsx']
********************
现在的目录:data\testB
该目录下包含的子目录:[]
该目录下包含的文件:['2020-07-12-B.xlsx', '2020-07-13-B.xlsx', '2020-07-14-B.xlsx']
********************
现在的目录:data\testC
该目录下包含的子目录:[]
该目录下包含的文件:['2020-07-12-C.xlsx', '2020-07-13-C.xlsx', '2020-07-14-C.xlsx']
********************
现在的目录:data
该目录下包含的子目录:['testA', 'testB', 'testC']
该目录下包含的文件:['2020-07-12 - 第一层.xlsx', '2020-07-13 - 第一层.xlsx', '2020-07-14 - 第一层.xlsx']
********************

2.2扫描输出所有文件的路径

输出所有文件:

import os
path="data"
for curDir, dirs, files in os.walk(path):
    for file in files:
        print(os.path.join(curDir, file))
data\2020-07-12 - 第一层.xlsx
data\2020-07-13 - 第一层.xlsx
data\2020-07-14 - 第一层.xlsx
data\testA\2020-07-12-A.xlsx
data\testA\2020-07-13-A.xlsx
data\testA\2020-07-14-A.xlsx
data\testB\2020-07-12-B.xlsx
data\testB\2020-07-13-B.xlsx
data\testB\2020-07-14-B.xlsx
data\testC\2020-07-12-C.xlsx
data\testC\2020-07-13-C.xlsx
data\testC\2020-07-14-C.xlsx

输出指定类型文件

#endswith 截取文件后缀
import os
path="data"
for curDir, dirs, files in os.walk(path):
    [print(os.path.join(curDir, file)) for file in files  if file.endswith(".xlsx")]

2.3扫描输出所有的子目录(子文件夹)

# 使用os.walk输出某个目录下的所有文件
import os
path="data"
for curDir, dirs, files in os.walk(path):
    for _dir in dirs:
        print(os.path.join(curDir, _dir))
data\testA
data\testB
data\testC

三、案例代码

综合运用os.walk()——文件指定日期整理程序

import pandas as pd
import numpy as np
import os,openpyxl
#移动符合条件文件,并删除二级文件夹和多余文件
def move_file(file_path,_new_path,date_xl_str):
    
    #本月文件移动至对应新建文件夹,非本月文件直接删除
    for curDir, dirs, files in os.walk(file_path):
        for file in files:
            old_path = os.path.join(curDir, file)
            new_path = os.path.join(_new_path, file)
            file_date=file.split("_")[-1][:10] 
            try:
                os.rename(old_path,new_path) if file_date in date_xl_str else os.remove(old_path)
            except:
                os.remove(old_path)

    #移除子文件夹
    for curDir, dirs, files in os.walk(file_path):
        for _dir in dirs:
            os.removedirs(os.path.join(curDir, _dir))
    os.mkdir("data")

#文件去重-相同日期文件
def qch_date(file_path):
    wj_names=os.listdir(file_path)
    wj_list=[]
    num=0
    for wj in wj_names:
        new_wj=wj[:-11]
        if new_wj not  in wj_list:
            wj_list.append(new_wj)
        else: 
            os.remove(file_path+"\\"+wj)
            num+=1
    return num

#更新数据源
def refresh_data(file_path,sheet_name,data):
    book=openpyxl.load_workbook(file_path)
    writer=pd.ExcelWriter(file_path,engine="openpyxl")
    
    #在ExcelWriter的源代码中,它初始化空工作簿并删除所有工作表,
    #writer.book = book将原来表里面的内容保存到writer中
    writer.book=book
    
    #activate激活指定sheet工作表
    ws=book[sheet_name]
    
    #清空当前活动表数据
    for row in ws.iter_rows():
        for cell in row:
            cell.value=None
    
    #dataframe行列数
    idx_num,col_num=data.shape
    
    #新数据写入当前活动表-注意索引偏移
    for i in  range(1,idx_num+1):
        for j in range(1,col_num+1):
            ws.cell(row=i,column=j).value=data.iloc[i-1,j-1]
    
    #保存关闭writer
    writer.save()
    writer.close()
    
    return None

#文件检查
def check_file(file_path,check_file="文件检查.xlsx"):
    wj_names=os.listdir(file_path)
    data=pd.DataFrame([wj.split("_")[2:] for wj in wj_names],columns=["店铺名称","日期"])
    data['日期']=data['日期'].str[:10] 
    
    #标题columns放到dataframe中
    nind=data.index.insert(0,'0')
    data1=data.reindex(index=nind)
    data1.loc['0']=data.columns
    data1.reset_index(drop=True,inplace=True)

    #刷新数据源
    refresh_data(check_file,"数据源",data1)
    
    return None

file_path="data"
#日期格式:xxxx-xx eg:2020-07-01
start_date=input("请输入开始日期:")
end_date=input("请输入开始日期:")

#生成日期区间-字符串类型
date_xl_str=[str(i)[:10] for i in pd.date_range(start_date,end_date,freq='D')]

#创建指定文件夹
new_path=start_date+"~"+end_date
try:
    os.mkdir(new_path)
except:
    print("文件夹 【%s】 已存在"%new_path)
    
#移动符合条件文件,并删除二级文件夹和多余文件
move_file(file_path,new_path,date_xl_str)
    
#文件去重
num=qch_date(new_path)
print("去除重复文件 %s 个"%num)

#文件检查
check_file(new_path)

以上就是小编今天为大家带来的内容,小编本身就是一名python开发工程师,我自己花了三天时间整理了一套python学习教程,从最基础的python脚本到web开发,爬虫,数据分析,数据可视化,机器学习,等,这些资料有想要的小伙伴 " 点击 " 即可领取

【Python】os.walk()函数功能详解 os.walk() 是 Python 中的一个非常方便的函数,用于遍历目录和其子目录,并返回一个三元组(dirpath, dirnames, filenames)的生成器。 阅读详情

相关推荐

Python实现按时间排序文件

本文介绍了如何使用Python实现按时间排序文件的方法,包括获取文件列表、解析文件名中的日期时间信息和排序文件列表等。这个方法对于时间序列类型的文件排序非常实用,希望对读者有所帮助。在进行数据处理和分析时,我们通常需要对文件进行排序。而对于时间序列类型的文件,按照时间顺序排序是一个常见的需求。本文将介绍Python如何实现按时间排序文件。首先,我们需要获取到需要排序的文件列表。参数指定了按照哪些字段进行排序,这里是依次按照年、月、日、时、分、秒进行排序。接下来,我们需要从文件名中提取出日期时间信息。

. 1819

python os.walk()方法使用详解

os.walk方法是python中帮助我们高效管理文件、目录的工具,在深度学习中数据整理应用的很频繁,如数据集的名称格式化、将数据集的按一定比例划分训练集train_set、测试集test_set。 1.导入文件(使用os.walk方法前需要导入以下包) import os import random # 后续用来将数据随机打乱和生成确定随机种子,保证每次生成的随机数据一样便于测试模型精准度 2.os.walk()参数解释 os.walk(top, topdown=True, οnerrοr=None,

林思少的博客 1万+

VisionPro动态坐标系构建:CogFixtureTool与CogFixtureNPointToNPointTool实战解析

本文深入解析了VisionPro中动态坐标系构建的核心技术,重点对比了CogFixtureTool与CogFixtureNPointToNPointTool的原理与应用。通过实战案例,阐述了如何利用坐标跟随(Fixturing)技术解决工业视觉检测中因零件位置偏移导致的测量不准问题,实现从“固定”到“随动”的思维跃迁,从而构建稳定、精准的检测程序。

weixin_29207439的博客 562

一文弄懂 Python os.walk(),轻松搞定文件处理和目录遍历

一文弄懂 Python os.walk(),轻松搞定文件处理和目录遍历

叶庭云 成为自己的光 1万+

WRF模型下中国土地利用数据替换USGS-24分类的完整实践指南

本文提供了在WRF模型中,将中国土地利用数据替换默认USGS-24分类的完整实践指南。详细阐述了替换下垫面数据的必要性,并分步讲解了数据准备、坐标转换、分类体系重映射、格式转换及配置文件修改等核心操作,旨在帮助用户提升针对中国区域的模拟精度。

salt的博客 777

【创作赢红包】Gurobi学术版证书更新与Python环境配置全攻略

本文详细解析了Gurobi学术版证书过期后的完整更新流程与Python环境配置方法。从彻底清理旧版残留、手把手注册获取新许可证,到软件安装、证书激活,最后重点讲解如何将gurobipy接口正确配置到Python的site-packages目录,并提供了常见问题排查方案,帮助用户高效解决证书与配置难题。

efc1234567的博客 611

python管理文件神器 os.walk

点击上方蓝色小字,关注“涛哥聊Python”重磅干货,第一时间送达来源:诡途https://blog.csdn.net/qq_35866846/article/details/1078...

涛哥聊Python 509

【TELEMAC V8P4】TELEMAC-2D 用户手册核心概念与应用场景速览

本文深入解析了TELEMAC-2D水动力模型的核心概念与应用。作为基于二维浅水方程的开源数值模拟工具,TELEMAC-2D广泛应用于河流动力学、洪水演进、污染物输运及泥沙运动模拟。文章结合用户手册与实战经验,详细拆解了其理论框架、关键物理过程(如湍流模型、干湿网格处理),并提供了从模型搭建、文件配置到典型场景(如工程评估、污染应急、洪水模拟)的实用指南,帮助用户快速掌握这一强大工具。

weixin_29200741的博客 162

names文件和data文件_Python管理文件神器 os.walk

来自:优快云,作者:诡途链接:https://blog.csdn.net/qq_35866846/article/details/107823636【导语】:有没有想过用python写一个文件管理程序?听起来似乎没思路?其实是可以的,因为Python已经为你准备好了神器os.walk,进来看看吧!Python中os.walk是一个简单易用的文件、目录遍历器,可以帮助我们高效的处理文件...

weixin_39968995的博客 1795

Keil MDK下载报错:Flash Download failed终极解决指南(附固件恢复步骤)

本文针对Keil MDK开发中常见的“Error: Flash Download failed”报错,提供了从基础连接到深度诊断的系统性解决指南。文章详细解析了错误成因,并重点介绍了当常规SWD调试失效时,如何通过Bootloader模式和ISP模式(特别是UART Bootloader)恢复“变砖”芯片的完整实战步骤,帮助开发者彻底解决固件下载难题。

weixin_29196613的博客 814

5G初始注册流程详解(2)-Registration Request

1:了解注册的本质,5G终端为什么要注册? 2:SUCI,SUPI,5G-GUTI的区别? 3:为什么会有COMPLETE REGISTRATION REQUEST呢?

weixin_53220301的博客 3794

Python管理文件神器 os.walk

来自:优快云,作者:诡途链接:https://blog.csdn.net/qq_35866846/article/details/107823636【导语】:有没有想过用python写...

python爬虫人工智能大数据 981

MicroCap声学仿真介绍(六)-入耳式耳机仿真

从上图可以看出,后腔开了泄声孔后,振膜的最大位移从4.8um提升到了10um,振膜位移增加了一倍。在实际应用中,一般耳机的前腔和后腔都需要开泄声孔,开孔的大小和调音网布的阻尼需要根据客户的要求以及仿真的结果进行权衡选择。接着在主界面放置电阻、电感、电容,电阻值为Rms,电感值为Mms,电容值为Cms,如下图。假设后腔泄声孔的直径为1.2mm,宽度为0.3mm,对应调音网的阻抗为5.5e8欧姆。假设前腔泄声孔的直径为1.2mm,宽度为0.3mm,对应调音网的阻抗为5.5e8欧姆。

山无忧的博客 1797

python excelwriter保存路径_python管理文件神器 os.walk

点击上方“机器学习与生成对抗网络”,关注"星标"获取有趣、好玩的前沿干货!来源:诡途https://blog.csdn.net/qq_35866846/article/details/107823636文仅分享,侵删【导语】:有没有想过用python写一个文件管理程序?听起来似乎没思路?其实是可以的,因为python已经为你准备好了神器os.walk,进来看看吧!python中os.w...

weixin_39625782的博客 66

算法真的是个很有用的东西,通过python或者golang实现对N张图片的自动排版,每张图片的长和宽都不一样,有的是横图,有的是竖图,最终需要生成一张完整的矩形图片

算法真的是个很有用的东西,通过python或者golang实现对N张图片的自动排版,每张图片的长和宽都不一样,有的是横图,有的是竖图,最终需要生成一张完整的矩形图片。

代码讲故事 503

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

python excelwriter保存路径_Python管理文件神器 os.walk

(给程序员陌然加星标,提升Python技能)来源:诡途https://blog.csdn.net/qq_35866846/article/details/107823636【导语】:有没有想过用python写一个文件管理程序?听起来似乎没思路?其实是可以的,因为python已经为你准备好了神器os.walk,进来看看吧!python中os.walk是一个简单易用的文件、目录遍历器,可以...

weixin_39582656的博客 99

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

用python写一个文件管理程序下载_Python管理文件神器 os.walk

原标题:Python管理文件神器 os.walk来自:优快云,作者:诡途【导语】:有没有想过用python写一个文件管理程序?听起来似乎没思路?其实是可以的,因为Python已经为你准备好了神器os.walk,进来看看吧!Python中os.walk是一个简单易用的文件、目录遍历器,可以帮助我们高效的处理文件、目录方面的事情。本文将详细介绍os.walk模块,最后使用os.walk模块实现一个在...

weixin_39730911的博客 92

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

js中的new file_python中的这个库居然是一个管理文件的神器

有没有想过用python写一个文件管理程序?听起来似乎没思路?其实是可以的,因为python已经为你准备好了神器os.walk,进来看看吧!python中os.walk是一个简单易用的文件、目录遍历器,可以帮助我们高效的处理文件、目录方面的事情。本文将详细介绍os.walk模块,最后使用os.walk模块实现一个在指定日志整理文件的程序。一、 基本介绍os.walk():扫描某个指定目录下所包含的...

weixin_39934063的博客 84

python excelwriter保存路径_Python管理文件神器,初学者必备!

来源:诡途https://blog.csdn.net/qq_35866846/article/details/107823636【导语】:有没有想过用python写一个文件管理程序?听起来似乎没思路?其实是可以的,因为python已经为你准备好了神器os.walk,进来看看吧!python中os.walk是一个简单易用的文件、目录遍历器,可以帮助我们高效的处理文件、目录方面的事情。本文...

weixin_39715187的博客 542

Python管理文件神器,初学者必备!

【导语】:有没有想过用python写一个文件管理程序?听起来似乎没思路?其实是可以的,因为python已经为你准备好了神器os.walk,进来看看吧! python中os.walk是一个简单易用的文件、目录遍历器,可以帮助我们高效的处理文件、目录方面的事情。 本文将详细介绍os.walk模块,最后使用os.walk模块实现一个在指定日志整理文件的程序。 基本介绍 os.walk():扫描某个指定目录下所包含的子目录和文件, 返回的是一个迭代器。 基本使用 假设文件夹data有如下的目录结构(cmd 命令:t

qq_52583721的博客 515

AutoClip LLM输出缓存与录制回放深度解析:可复现评估是怎么做到的

**AutoClip** 是一款 AI 驱动的视频高光提取与剪辑二创工具,它把长视频自动切成可发布的短视频。而它内部一套不起眼的机制——**LLM 输出缓存(录制 / 回放)**,正是评估结果“每次都一样”的关键。这篇文章用最短的篇幅讲清楚:AutoClip 是如何只靠一个环境变量,就让 AI 流水线的评估做到零费用、可复现的。 ## 🎬 为什么 LLM 评估需要“可复现”? AutoCli

gitblog_00493的博客 370

Python文件操作全解析:从原理到实战避坑指南

文件操作是编程中处理数据持久化的基础技术,其核心原理涉及文件句柄、访问模式和操作系统资源管理。理解文件打开、读写、关闭的完整生命周期,对于保障数据一致性和系统稳定性至关重要。在Python中,通过open()函数和with语句可以高效管理文件资源,而访问模式(如'r'、'w'、'a'、'b')则决定了数据读写的行为与边界。字符编码问题(如UTF-8、GBK)是文本文件处理中的常见挑战,合理选择编码策略能有效避免乱码和解析错误。结合os与shutil模块,开发者可以实现跨平台的路径操作、批量文件处理与高级文件

weixin_30691871的博客 365
上一篇: 用python制作一个PDF转换器
下一篇: 在python中实现如何实现自动导入缺失的库
python程序员小'鹏
博客等级 码龄6年 163粉丝 87原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值