让python去翻“垃圾”——遍历文件夹
2019-07-09 本文已影响0人
求余的小屋
概述
处理电脑的日常事务,免不了要和文件夹(或者说工作目录)打交道
好在python提供的内置模块:os,提供许多便利的操作
今天学习了该模块内的 os.walk() 方法,用于遍历所选文件夹内所有子文件夹,
以及,每一个文件夹内所包含的文件。
函数长这样
#!python3
os.walk(<目录>)
- 返回值:该方法没有返回值
- 读取目录下的每一个文件夹(包含它自己)
产生3-元组 (dirpath, dirnames, filenames)【文件夹路径, 文件夹名字, 文件名】
所以,可以用 for 循环,将元组解包,用于后续的遍历操作
实例
目标文件夹代码
#!python3
#walk.py - 用于遍历文件夹和子文件夹
import os
def walk_floders(folder=str(os.getcwd())): #默认获取脚本所在文件夹,传入os.walk()
for folderName, subfolders, filenames in os.walk(folder):
print('当前目录:' + folderName)
for subfolder in subfolders:
print('子目录' + ' `-- ' + subfolder)
for filename in filenames:
print('当前目录包含文件 ' + os.path.basename(folderName) + ' <-- ' + filename)
print('')
def main():
print(os.getcwd()) #输出脚本目前工作的目录
if len(sys.argv) == 2: #如果指定了读取的目录,传入目标目录
tar_floder = sys.argv[1]
walk_floders(tar_floder)
else: #否则,获取脚本所在目录,遍历
walk_floders(tar_floder)
if __name__ == '__main__':
main()
运行
- 我写了一个 run.bat 可以方便启动脚本
将 run.bat 脚本放置到和要运行的脚本于同一目录下(要记得把放 run.bat 的脚本的文件夹,添加到系统环境变量中去)
或者,如下,指定要运行脚本的放置路径
@python3.exe D:\py\Auto\walk.py %*
@pause
- 我导入了 sys 模块,让脚本从命令行获取我选择遍历的目录
-
“win + R” 启动如下窗口,输入需要遍历的目录。
运行
效果
遍历结果总结
有时候,我们要循环搜索某文件夹,及其子文件夹下的所有特定格式的文件(例如.txt, .jpg, .pdf 等)
用os.walk()方法,配合** for 循环,正则表达式匹配,os, shutil等文件处理模块
可以轻松处理大量的移动,查找,改名,删除,替换等费时费力的工作了
人生苦短,我用python