如何利用Python遍历文件夹

如何利用Python遍历文件夹,第1张

import os

s = os.sep #根据unix或win,s为\或/

root = "槐差d:" + s + "ll" + s #要遍历的目录

def func(args,dire,fis): #回调函数的定义

for f in fis:

fname = os.path.splitext(f) #分割文件名为名字和扩展名的二正铅元组

new = fname[0] + '铅清皮b' + fname[1] #改名字

os.rename(os.path.join(dire,f),os.path.join(dire,new)) #重命名

os.path.walk(root,func,()) #遍历

例如:在C:\TDDOWNLOAD目录下有a.txt、b.txt两个文件,另有\sub1子文件夹,C:\TDDOWNLOAD\sub1下又有c.txt、d.txt两个文件。

1. os.walk

os.walk()返回一个三元素的tuple:当前路径、子文件夹名称、文件列表。

>>>import os

>>>def fun( path ):

... for root, dirs, files in os.walk( path ):

... for fn in files:

... print root, fn

...

>>>fun( r'C:\TDDOWNLOAD' )

C:\TDDOWNLOAD a.txt

C:\TDDOWNLOAD b.txt

C:\TDDOWNLOAD\sub1 c.txt

C:\TDDOWNLOAD\sub1 d.txt

>>>

2. glob.glob

glob.glob()只接受渗握一个参数,这个参数既代有路径,又代有匹配模式,返回值为一个列表。注意,glob.glob()无法直接穿透子文启野件夹,需要自己处理:

>>>def fun( path ):

... for fn in glob.glob( path + os.sep + '*' ): # '*'代表匹配所有文件

... if os.path.isdir( fn ): # 如果结果为文件夹

... fun( fn ) # 递归

... else:

... print fn

...

>>>fun( r'C:\TDDOWNLOAD' )

C:\TDDOWNLOAD\a.txt

C:\TDDOWNLOAD\b.txt

C:\TDDOWNLOAD\sub1\c.txt

C:\TDDOWNLOAD\sub1\d.txt

>>>

'*'为匹配模式,代表匹配所有文件,只有这悄喊喊样才能将子文件夹查出来,以便递归深入,探查下一层的文件。

先遍庆扰历所有冲差咐文件:

from os import 散纯walk

f = []

for (dirpath, dirnames, filenames) in walk(mypath):

    f.extend(filenames)

    break


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12122302.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存