广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python实现递归遍历文件夹并删除文件
  • 354
分享到

Python实现递归遍历文件夹并删除文件

递归遍历文件夹 2022-06-04 19:06:16 354人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

思路: 遍历文件夹下面的文件夹 如果文件夹名称等于".svn",则修改文件夹的属性(因为".svn"的文件都是只读的,你不能直接删除) 删除此文件夹 如果文件夹名称不等于".svn",则递归上面的方法 py

思路:

遍历文件夹下面的文件夹
如果文件夹名称等于".svn",则修改文件夹的属性(因为".svn"的文件都是只读的,你不能直接删除)
删除此文件夹
如果文件夹名称不等于".svn",则递归上面的方法

python的实现

代码


import os
import shutil
import os.path
import stat
rootdir="F:\work\Test"
for parent,dirnames,filenames in os.walk(rootdir): #遍历文件夹下面的所有文件夹 
 
  for dirname in dirnames:   
    if dirname=='.svn':
      strfilepath=parent+os.sep+dirname
      if os.path.isdir(strfilepath):
        os.system('attrib -r ' + parent + '\*.* /s')#设置本文件夹可写
        os.system('attrib -r ' + strfilepath + '\*.* /s')#设置父文件夹可写        
        shutil.rmtree(parent+os.sep+dirname)#删除此文件夹

要点:

Walk在os模块下面,用来根据提供的文件夹生成一个generator。每次可以得到一个三元tupple,其中第一个为起始路径,第二个为起始路径下的文件夹,第三个是起始路径下的文件。
os.system('attrib -r ' + parent + '\*.* /s') 设置文件夹可写
shutil.rmtree(parent+os.sep+dirname) 删除文件夹(即使文件夹里面有文件)

例二:

Python实现递归遍历指定文件目录(startdir),从而找到所有与指定的文件或目录(target)名相同的文件或目录的绝对路径。

scandir.py :


#! /usr/bin/python
# filename : scandir.py
# author : Jesse
# update : 2011/08/15 10:16

import os

def scandir(startdir, target) :
  os.chdir(startdir)
  for obj in os.listdir(os.curdir) :
    if obj == target :
      print os.getcwd() + os.sep + obj
    if os.path.isdir(obj) :
      scandir(obj, target)
      os.chdir(os.pardir) #!!!

startdir = raw_input('Please input startdir: ')
target = raw_input('Please input target: ')
scandir(startdir, target)

关于该程序的一点说明:

1. 函数scandir的形参target可以是目录名也可以是文件名。
2. 函数chdir的作用是切换到指定目录,该参数必须是有效的且有访问权限的相对路径或绝对路径。
3. 函数的第五行,使用getcwd函数也是为了取得当前绝对路径。
4. 加号作为字符串的连接符。os.sep根据你的操作系统给出目录分隔符,在GNU/linux和UNIX上它的返回值是'/',在windows上它的返回值是'\',在Mac OS上是‘:',使用os.sep而不直接使用字符,会提高程序的可移植性。
5. 递归调用后,一定不能忘了os.chdir(os.pardir),返回上层目录(即父目录)。

重要:

1. 理解for中的两个并列的if语句,并列是为了解决目标是文件夹时,该目标文件夹中包含符合要求的文件夹。
2. 如果指定目录中存在访问受限的文件或文件夹,该程序会失败,返回无权访问信息。

例三:

Python递归遍历文件夹,寻找包含某个字符串的文本文件

linux下,如果不使用eclipse的话,想查找某个字符串在哪些文件中出现过就很麻烦,自己写了这个脚本在编码时使用,挺方便的。如果某个文本文件中包含的话,则只记录出现第一次的行数输出
使用方法:
python xxx.py 路径 字符串

python search_content.py /home/www/ abcdefg

search_content.py


#!/use/bin/env python
#-*- coding:utf-8 -*-
import sys,os
filterType = ['gif','png','bmp','jpg','jpeg','rar','zip',
      'ico','apk','ipa','doc','docx','xls','jar',
      'xlsx','ppt','pptx','pdf','gz','pyc','class']
num = 0
def search(path=None,cont=None):
  if not path or not cont:
    print('path or searchString is empty')
    return
  global num
  _loopFolder(path,cont)
  print("%s file find" % num)
def _loopFolder(path,cont):
  arr = path.split('/')
  if not arr[-1].startswith('.'): #不检查隐藏文件夹
    if os.path.isdir(path):
      folderList = os.listdir(path)
      for x in folderList:
        _loopFolder(path+"/"+x,cont)
    elif os.path.isfile(path):
      _verifyContent(path,cont)
def _verifyContent(path,cont):
  if path.split('.')[-1].lower() in filterType:
    return
  global num
  fh = open(path,'r')
  fhContent = fh.readlines()
  fh.close()
  for index,x in enumerate(fhContent):
    if cont in x:
      num += 1
      print("%s  %s" % (path,index+1))
      break
  return
if __name__ == "__main__":
  if len(sys.argv) < 3:
    print("invalid parameters")
  else:
    search(sys.argv[1],sys.argv[2])

--结束END--

本文标题: Python实现递归遍历文件夹并删除文件

本文链接: https://www.lsjlt.com/news/15063.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python实现递归遍历文件夹并删除文件
    思路: 遍历文件夹下面的文件夹 如果文件夹名称等于".svn",则修改文件夹的属性(因为".svn"的文件都是只读的,你不能直接删除) 删除此文件夹 如果文件夹名称不等于".svn",则递归上面的方法 Py...
    99+
    2022-06-04
    递归 遍历 文件夹
  • Python怎么实现递归遍历文件夹搜索文件
    本篇内容主要讲解“Python怎么实现递归遍历文件夹搜索文件”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python怎么实现递归遍历文件夹搜索文件”吧!开发背景:电脑的E盘里有很多电子书,以前...
    99+
    2023-06-02
  • Node.js 使用递归实现遍历文件夹中所有文件
    如标题所示,遍历文件夹下的所有文件,主要功能如下: 传入一个路径,读取路径里面所有的文件 遍历读取的文件,判断当前文件是文件还是文件夹 当前目录为文件,打印出当前文件绝对路径 当前目录为文件夹,获取文件夹路...
    99+
    2022-06-04
    递归 文件 遍历
  • 使用 Python 实现文件递归遍历的
    今天有个脚本需要遍历获取某指定文件夹下面的所有文件,我记得很早前也实现过文件遍历和目录遍历的功能,于是找来看一看,嘿,不看不知道,看了吓一跳,原来之前我竟然用了这么搓的实现。 先发出来看看: def getallfiles(dir): ""...
    99+
    2023-01-31
    递归 遍历 文件
  • Shell脚本实现递归删除空文件夹
    有时我们需要递归删除空文件夹,网上找了一下,没有发现比较好的Shell脚本,于是自己动手写了一个 脚本 #!/bin/bash # author: 十年后的卢哥哥 # des: delete empt...
    99+
    2022-06-04
    递归 脚本 文件夹
  • Node.js中怎么利用递归遍历文件夹
    Node.js中怎么利用递归遍历文件夹,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。如标题所示,遍历文件夹下的所有文件,主要功...
    99+
    2022-10-19
  • Shell中怎么实现递归删除空文件夹
    Shell中怎么实现递归删除空文件夹,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。代码如下:#!/bin/bash# author: 十年后的卢哥哥# des:...
    99+
    2023-06-09
  • 怎么在php中利用递归遍历文件夹
    今天就跟大家聊聊有关怎么在php中利用递归遍历文件夹,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。php的框架有哪些php的框架:1、Laravel,Laravel是一款免费并且开源...
    99+
    2023-06-14
  • Python实现遍历读取文件或文件夹
    目录例子os.listdiros.walk遍历读取代码搞机器学习或者深度学习算法很多时候需要遍历某个目录读取文件,特别是经常需要读取某个特定后缀的文件,比如图片的话可能需要读取jpg...
    99+
    2022-11-11
  • nodejs实现遍历文件夹并统计文件大小
    离开公司已经有2个多个月,之前写了不少工具,但在离开公司的当天,我亲手把一年来的所有积累工具和代码都格式化了。今天想起之前在项目中遇到的一个问题,今天将其记录下来。 我在优化内存的时候,遇到一些图片在加载...
    99+
    2022-06-04
    文件大小 遍历 文件夹
  • C++ 递归遍历文件并计算MD5的方法
    这篇文章主要介绍“C++ 递归遍历文件并计算MD5的方法”,在日常操作中,相信很多人在C++ 递归遍历文件并计算MD5的方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C++ 递归遍历文件并计算MD5的方法...
    99+
    2023-06-20
  • C++ 递归遍历文件并计算MD5的实例代码
    递归遍历文件夹,对比文件md5 首先,需要引用 md5 的相关代码,参考这篇文章,防止链接内容被删除,这里再记录一次: md5.h #ifndef MD5_H #d...
    99+
    2022-11-12
  • 使用Python遍历文件夹实现查找指定文件夹
    目录1. 文件夹结构2. 查找指定文件夹下指定文件3. 查找指定文件夹下所有相同名称的文件4. 查找指定文件夹下所有相同后缀名的文件1. 文件夹结构 指定文件夹:E:/Code/Py...
    99+
    2022-11-11
  • Python实现遍历包含大量文件的文件夹
    在处理大模型的训练数据时,经常需要遍历大型文件夹,其中,可能包括数千万或数亿个文件,这时,一般的Python遍历函数就会非常慢,例如os.walk、glob、path.rglob等等...
    99+
    2023-05-15
    Python实现遍历文件夹 Python遍历文件夹 Python 文件夹
  • Python实现FTP上传文件或文件夹实例(递归)
    本文实例讲述了Python实现FTP上传文件或文件夹实例。分享给大家供大家参考。具体如下: import sys import os import json from ftplib import...
    99+
    2022-06-04
    递归 文件夹 上传文件
  • Golang 删除文件并递归删除空目录的操作
    目的: 删除文件之后,如果目录为空,递归删除为空的目录。 svr.dataDir指目录的最外层,递归删除目录的时候判断到这一层即可。 eg:/Users/danny/data f...
    99+
    2022-11-12
  • Python遍历文件夹和读写文件的实现代码
    需 求 分 析 1、读取指定目录下的所有文件 2、读取指定文件,输出文件内容 3、创建一个文件并保存到指定目录 实 现 过 程   Python写代码简洁高效,实现以上功能仅用了40行左右的代码~ 昨天用...
    99+
    2022-06-04
    遍历 文件夹 代码
  • Python遍历文件夹和读写文件的实现方法
    需 求 分 析 1、读取指定目录下的所有文件 2、读取指定文件,输出文件内容 3、创建一个文件并保存到指定目录 实 现 过 程 Python写代码简洁高效,实现以上功能仅用了40行左右的代码~ 昨天用Ja...
    99+
    2022-06-04
    遍历 文件夹 文件
  • Android递归方式删除某文件夹下的所有文件(.mp3文件等等)
    1.由于需要删除文件,因此需要如下权限: <uses-permission android:name="android.permission.WRITE_EXTERNAL...
    99+
    2022-06-06
    mp mp3 Android
  • golang遍历文件夹怎么实现
    在Go语言中,可以使用filepath.Walk函数来遍历文件夹。filepath.Walk函数会递归地遍历指定的文件夹及其子文件夹...
    99+
    2023-10-20
    golang
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作