python管理文件神器 os.walk
文章插图
来源:诡途
【导语】:有没有想过用python写一个文件管理程序?听起来似乎没思路?其实是可以的 , 因为python已经为你准备好了神器os.walk , 进来看看吧!
python中os.walk是一个简单易用的文件、目录遍历器 , 可以帮助我们高效的处理文件、目录方面的事情 。
本文将详细介绍os.walk模块 , 最后使用os.walk模块实现一个在指定日志整理文件的程序 。
基本介绍
os.walk:扫描某个指定目录下所包含的子目录和文件 , 返回的是一个迭代器 。
基本使用
假设文件夹data有如下的目录结构(cmd 命令:tree /f)
文章插图
【python管理文件神器 os.walk】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——文件指定日期整理程序
- 手机|真实购机用户称它为“拍照神器”,vivo S7e真那么给力?
- 地铁上|地铁禁外放成趋势!OPPO Enco X成通勤路上的音效神器
- 告诉|阿里大佬告诉你如何一分钟利用Python在家告别会员看电影
- Python源码阅读-基础1
- Python调用时使用*和**
- 如何基于Python实现自动化控制鼠标和键盘操作
- 解决多版本的python冲突问题
- 学习python第二弹
- 再见了录音笔!微信打开这个小程序,手机秒变会议记录神器
- Python中文速查表-Pandas 基础