前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >python - 遍历目录

python - 遍历目录

作者头像
phith0n
发布于 2020-10-15 14:07:18
发布于 2020-10-15 14:07:18
1.4K00
代码可运行
举报
运行总次数:0
代码可运行

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

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

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


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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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,onerror=None)

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
generator = os.walk(r"E:\Python\pro")
for i in generator:
    print i

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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", "")

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
python/测试/测开-刷题第4天
Python标准库os模块的walk函数提供了遍历一个文件夹的功能,它返回一个生成器。
测试开发囤货
2021/11/29
5370
python/测试/测开-刷题第4天
python 目录操作
# CAUTION: This is dangerous! For example, if top == '/', it
用户1349575
2021/12/24
9230
Python文件夹与文件的操作
###Python文件夹与文件的操作 最近频繁的与文件操作打交道,这块比较弱,在百度上找到一篇比较不错的文章,这是原文的传送门 有关文件夹与文件的查找,删除等功能在os模块中实现,使用时需要导入这个模块: import os ####一、获取当前目录 s = os.getwd() s中保存的就是当前的目录(即文件夹) 下面是一个例子:将abc.py放在A文件夹,不管A放置在硬盘的哪个位置,都可以在A文件夹内生成一个新的文件夹。且文件夹的名字跟据时间自动生成: import os import time fi
xiangzhihong
2018/01/26
1.4K0
使用 Python 实现文件递归遍历的
今天有个脚本需要遍历获取某指定文件夹下面的所有文件,我记得很早前也实现过文件遍历和目录遍历的功能,于是找来看一看,嘿,不看不知道,看了吓一跳,原来之前我竟然用了这么搓的实现。
py3study
2020/01/07
2.5K0
python os模块 --- 操作系统接口模块
1.OS模块下的常见函数 # os模块 # os.sep:取代操作系统特定的路径分隔符 # os.getcwd:得到当前工作目录,即当前python脚本工作的目录路径。 # os.getenv()和os.putenv:分别用来读取和设置环境变量 # os.listdir():返回指定目录下的所有文件和目录名 # os.remove(file):删除一个文件 # os.stat(file):获得文件属性 # os.mkdir(name):创建目录 # os.rmdir(name):删除目录 # os.exit
诡途
2020/10/16
6110
Python文件
遍历文件列表返回一个元组,元组内容为(dirpath, dirnames, filenames)
bering
2020/04/24
4290
Python深度遍历、广度遍历、递归函数遍历目录【详细讲解】
Python通过os模块可以实现对文件或者目录的遍历,这里想实现这样的效果有三种方法,分别是递归函数遍历目录,栈深度遍历和队列广度遍历。下面就通过这三种方法来演练一下。
python自学网
2021/12/07
3.8K0
Python深度遍历、广度遍历、递归函数遍历目录【详细讲解】
Python 三种遍历目录的方法,轻松帮你找出隐藏文件
无论在 Windows 系统中还是 Linux 系统中,都存在着隐藏文件以及隐藏文件夹。隐藏文件夹一般是系统关键性目录,例如 Windows 系统中的 C 盘中的 Boot 文件夹、Windows 文件夹等。在 Linux 系统中,一些系统配置文件或软件配置文件会被隐藏起来,如:系统环境变量配置文件 .profile。有些时候,我们必须通过文件路径来遍历整个目录,然后找到隐藏文件。本文的主要内容是给大家分享 Python 三种遍历文件的方法。
猴哥yuri
2018/12/06
9.3K0
Python 三种遍历目录的方法,轻松帮你找出隐藏文件
Python-os-02-文件夹遍历,文件或者文件夹判断
系统:Windows 7 语言版本:Anaconda3-4.3.0.1-Windows-x86_64 编辑器:pycharm-community-2016.3.2
zishendianxia
2019/10/23
1K0
Python-os-02-文件夹遍历,文件或者文件夹判断
python 遍历目录
python使用os模块判断文件 基础知识 #导入os模块 import os #判断路径是否存在(True, False) os.path.exists('/tmp/test') #判断目标是否是文件(True, False) os.path.isfile('/tmp/test/file1') #创建目录(可以递归创建) os.makedirs('d:/assist/set') 遍历目录取出其中文件的方法 import os def test(dir): for file in os.listd
py3study
2020/01/14
1.3K0
一文搞定Python操作文件和目录
文件和目录操作是很常见的功能,这里做个简单的总结,包括注意事项和实际的实现代码,基本日常开发都够用了
AntDream
2019/08/15
5870
Python 对目录的操作
一、递归遍历目录 <span class="hljs-comment"># 返回所有文件的绝对路径</span> <span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">traverseDir</span><span class="hljs-params">(dirPath)</span>:</span> absPathList = [] <span class="
星哥玩云
2022/09/08
2780
python3基础:目录操作
os模块提供了统一的操作系统接口函数,python中对文件和文件夹的操作都要涉及到os和shutil模块,在使用前需要使用import引入,例如;
py3study
2020/01/09
1.3K0
图解python | 文件与目录操作
教程地址:http://www.showmeai.tech/tutorials/56
ShowMeAI
2022/02/23
1K0
图解python | 文件与目录操作
我是如何用10行代码搬运目标图片的?
嗯呢,你没看错,就是教你把一个路径下的所有目标图片搬运到制定路径下。有读者说:小詹你忽悠人吧,要搬运目标图片复制粘贴不就好了嘛,要什么代码,搬砖脑子秀逗了?
小小詹同学
2019/11/12
1.2K0
我是如何用10行代码搬运目标图片的?
Python: os模块实例详解
import os 操作文件 # I use jupyter notebook to create some file !touch foo.txt !echo Hello > foo.txt !cat foo.txt Hello # rename file os.rename('foo.txt','bar.txt') !cat bar.txt Hello # remove file os.remove('bar.txt') 改变目录 # current dir print os.getcwd() # cu
用户2183996
2018/06/28
8660
自动同步2个目录python脚本
#!/usr/bin/python # -*- coding: utf8 -*- import os import sys import filecmp import re import shutil file_list = [] def recursive_dir(dir1):     """     递归当前目录的文件和子目录     :param dir1: 传参 需要递归的目录     :return: 当前目录下所有文件和目录     """     curDir = os.path.absp
py3study
2020/01/15
1.3K0
Python内置OS模块用法详解
大家好,从今天起早起Python将持续更新由小甜同学从初学者的角度学习Python的笔记,其特点就是全文大多由新手易理解的代码与注释及动态演示。刚入门的读者千万不要错过!
刘早起
2020/06/04
1.1K0
小甲鱼《零基础学习Python》课后笔记(三十):文件系统——介绍一个高大上的东西
动动手 0.编写一个程序,统计当前目录下每个文件类型的文件数,程序实现如图:
小火柴棒
2019/01/11
7110
相关推荐
python/测试/测开-刷题第4天
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验