Python-递归文件夹并删除文件

思路:

  1. 遍历文件夹下面的文件夹
  2. 如果文件夹名称等于".svn",则修改文件夹的属性(因为".svn"的文件都是只读的,你不能直接删除)
  3. 删除此文件夹
  4. 如果文件夹名称不等于".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)#删除此文件夹

  

要点:

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

Python-递归文件夹并删除文件的相关文章

iOS 创建文件夹,删除文件夹,对文件夹重命名的操作

iOS 创建文件夹,删除文件夹,对文件夹重命名的操作 by 伍雪颖 + (void)createFolder:(NSString *)folderName { NSString *imageDir = [NSString stringWithFormat:@"%@/Documents/%@", NSHomeDirectory(),folderName]; NSLog(@"HomeDir: %@",imageDir); BOOL isDir = NO; NSFileM

PHP 查看文件夹大小、复制文件夹、删除文件夹

PHP虽然提供了 filesize.copy.unlink 等文件操作的函数,但是没有提供 dirsize.copydir.rmdirs 等文件夹操作的函数(rmdir也只能删除空目录).所以只能手动编写这些函数,主要的技巧是通过递归将问题逐层分解,直到分解成可以直接解决的最小子问题. ====================查看文件夹大小===================== 由于文件夹是没有大小的,平常所说的文件夹尺寸准确的说应该是文件夹中所有文件的总大小.所以只需要将文件夹逐层查找,统

在程序document文件夹里边创建新的文件夹及删除文件夹

// //  ViewController.m //  12.18.04在document创建文件夹 // //  Created by 张凯泽 on 15/12/18. //  Copyright © 2015年 rytong_zkz. All rights reserved. // #import "ViewController.h" @interface ViewController () @property(nonatomic,strong)NSFileManager *fil

八,删除文件夹以及删除文件

1,删除文件夹指令是rmdir(),bool rmdir(string $filename).如果文件夹中有东西,则删除失败. 实例: <?php if(rmdir("d:/shunping")){ echo '删除成功!'; }else{ echo '删除失败!'; } 2,删除文件指令是unlink(),bool unlink(string $filename).删除文件还可以使用delete指令. 实例: <?php $file_path = "d:/shu

复制文件夹,删除文件夹

复制文件夹 procedure TForm1.Button1Click(Sender: TObject); var ss:TSHFileOpStruct; sdir,ddir:string;begin sdir:=ExtractFilePath(ParamStr(0))+'Sou'; //源目录 ddir:=ExtractFilePath(ParamStr(0))+'Dst';//目的目录 if not DirectoryExists(ddir) then CreateDir(ddir); //

java拷贝文件夹和删除文件夹

1.文件夹的拷贝 public void copy(File src, File dest) throws IOException { if (dest.isFile()) { throw new RuntimeException(dest + "不是文件夹"); } File file = new File(dest.getPath() + "/" + src.getName()); if (src.isFile()) { FileInputStream fis

python 实现彻底删除文件夹和文件夹下的文件

python 中有很多内置库可以帮忙用来删除文件夹和文件,当面对要删除多个非空文件夹,并且目录层次大于3层以上时,仅使用一种内置方法是无法达到彻底删除文件夹和文件的效果的,比较low的方式是多次调用直到删除.但是,我们可以结合多个内置库函数,达到一次删除非空文件夹,不管其目录层次有多深. import os import shutil import traceback import globalvar def misc_init() # clean the test result folder

C#递归删除文件夹目录及文件

在C#文件操作过程中,有时候需要删除相应目录,如果文件夹中含有其他文件夹或者文件,也需要一并进行删除,此时可能就需要使用递归来删除文件夹目录以及文件,递归过程中,如果遍历的对象是文件夹,则删除文件夹,若是文件,则删除对应文件.Directory.Delete方法可用于删除文件夹,File.Delete方法用于删除文件.具体的代码实现如下:/// <summary>/// 递归删除文件夹目录及文件/// </summary>/// <param name="dir&q

Python递归遍历目录下所有文件

#自定义函数: import ospath="D:\\Temp_del\\a" def gci (path): parents = os.listdir(path) for parent in parents: child = os.path.join(path,parent) #print(child) if os.path.isdir(child): gci(child) # print(child) else: print(child) gci(path) #使用os.walk方