python 遍历目录_python - 遍历目录

这篇博客讲述了如何使用Python遍历指定目录及其子目录,查找并替换所有文件中的特定内容。通过os模块实现文件操作,递归调用getfile函数遍历目录,replace_str函数用于替换文件中的字符串。此外,还提到了Python的os.walk()函数作为另一种遍历目录的方式。文章旨在对比不同语言在处理相同任务时的异同,帮助读者巩固文件操作知识。
摘要由CSDN通过智能技术生成

一门语言,如果知道了基本语法,知道输入输出、文件操作、数据库的操作、通信(socket等),基本上就可以开始开发了。剩下的知识就是在开发中慢慢学习与积累。这也是我学习一门新语言首先去了解的部分。现在的语言五花八门,其实归根结底也就是这些内容。

大家也可能在学习中感到迷茫,好像新的东西自己不知道怎么去用。所以,把上面这些点都能看到,就开始做自己头脑中想过的那些程序吧。

说了这么多废话,进入主题……我曾经写了C语言的遍历目录、PHP的遍历目录,今天来说一下python遍历目录,也算给大家一个对比,以及学习我上面说的:文件操作。

程序要实现的目的是遍历某个目录,并把其中的所有文件中某段内容替换掉。

import os

def replace_str(FilePath,SourceStr,ObjectStr):

file = open(FilePath,"r")

str = file.read()

str = str.replace(SourceStr,ObjectStr)

file.close()

file = open(FilePath,"w")

file.write(str)

file.close()

def getfile(path):

for file in os.listdir(path):

file = os.path.join(path,file)

if os.path.isdir(file):

getfile(file)

else:

replace_str(file,"abcd","")

rootpath = "e:\\01"

getfile(rootpath)

我们要遍历目录,首先导入os模块。import os

先跳过两个函数,看到我们最下面两行。我们就是需要遍历rootpath目录,将之传入getfile函数。

getfile是个递归函数,遍历目录是一定要用递归的。运用os.listdir()获取所有的文件(包括目录和文件),获取到的是一个list,用for ..in遍历list,然后用os.path.isdir()函数判断当前的文件是否是一个目录。

如果是目录则递归执行getfile()函数,否则就进入replace_str()函数。

大概就是这个过程。代码也很简单,结合我前两篇文章,应该不难理解。主要是对比,看看三种语言完成一个任务,各自有什么优劣。

补记:

遍历目录,其实python的os模块已经给出了一个函数。

generator = os.walk(top,topdown=True,οnerrοr=None)

它返回的对象是一个generator类型对象,我们要使用for语句来遍历它:

generator = os.walk(r"E:\Python\pro")

for i in generator:

print i

我们会发现,i 实际上是一个三元tuple,分别是此时的目录,此目录下的文件夹,此目录下的文件。所以我们上面的getfile函数可以简化如下:

def getfile(path):

generator = os.walk(path)

for (now_dir, _, file_list) in generator:

for file in file_list:

file = os.path.join(now_dir, file)

replace_str(file, "abc", "")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值