python初学者

让python去翻“垃圾”——遍历文件夹

2019-07-09  本文已影响0人  求余的小屋

概述

处理电脑的日常事务,免不了要和文件夹(或者说工作目录)打交道
好在python提供的内置模块:os,提供许多便利的操作
今天学习了该模块内的 os.walk() 方法,用于遍历所选文件夹内所有子文件夹,
以及,每一个文件夹内所包含的文件。

函数长这样

#!python3
os.walk(<目录>)

实例

目标文件夹

代码

#!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()

运行

@python3.exe D:\py\Auto\walk.py %*
@pause

效果

遍历结果

总结

有时候,我们要循环搜索某文件夹,及其子文件夹下的所有特定格式的文件(例如.txt, .jpg, .pdf 等)
os.walk()方法,配合** for 循环,正则表达式匹配,os, shutil等文件处理模块
可以轻松处理大量的移动,查找,改名,删除,替换等费时费力的工作了

人生苦短,我用python

上一篇下一篇

猜你喜欢

热点阅读