使用Python递归对文件进行相关处理

开发 后端
我们在这篇文章中为大家介绍的Python递归的主要功能体现在文件的删除方面,通过对这一内容的理解,大家可以充分的掌握这一应用技术。

在众多Python应用技巧中,对于文件操作的相关方法是一个比较重要的应用技术。在这里我们会通过对Python递归的相关介绍,来了解一下其对文件操作所起到的作用,希望可以给大家带来一些帮助。#t#

Python递归在这里有两个需求:

删除某个目录以及子目录下的所有.svn文件

删除某个文件夹下所有文件

在Python中,Python递归中的文件操作主要来自os模块,主要方法如下:

 

  1. os.listdir(dirname):列出dirname下的目录和文件  
  2. os.getcwd():获得当前工作目录  
  3. os.curdir:返回当前目录('.')  
  4. os.chdir(dirname):改变工作目录到dirname 

 

 

  1. os.path.isdir(name):判断name是不是一个目录,name不是目录就返回false  
  2. os.path.isfile(name):判断name是不是一个文件,不存在name也返回false  
  3. os.path.exists(name):判断是否存在文件或目录name  
  4. os.path.getsize(name):获得文件大小,如果name是目录返回0L 
  1. os.path.abspath(name):获得绝对路径  
  2. os.path.normpath(path):规范path字符串形式  
  3. os.path.split(name):分割文件名与目录
    (事实上,如果你完全使用目录,它也会将最后一个目录作为文件名而分离,
    同时它不会判断文件或目录是否存在)  
  4. os.path.splitext():分离文件名与扩展名  
  5. os.path.join(path,name):连接目录与文件名或目录  
  6. os.path.basename(path):返回文件名  
  7. os.path.dirname(path):返回文件路径 
  1. os.remove(dir) #dir为要删除的文件夹或者文件路径  
  2. os.rmdir(path) #path要删除的目录的路径。需要说明的是,
    使用os.rmdir删除的目录必须为空目录,否则函数出错。 

 

Python递归删除目录下的svn代码:

 

  1. #!/usr/bin/env python  
  2. #coding=utf-8  
  3. import sys, os, stat  
  4. def walk(path):  
  5. for item in os.listdir(path):  
  6. subpath = os.path.join(path, item)  
  7. mode = os.stat(subpath)[stat.ST_MODE]  
  8. if stat.S_ISDIR(mode):  
  9. if item == ".svn":  
  10. print "Cleaning %s " %subpath  
  11. print "%d deleted" % purge(subpath)  
  12. else:  
  13. walk(subpath)  
  14. def purge(path):  
  15. count = 0 
  16. for item in os.listdir(path):  
  17. subpath = os.path.join(path, item)  
  18. mode = os.stat(subpath)[stat.ST_MODE]  
  19. if stat.S_ISDIR(mode):  
  20. count += purge(subpath)  
  21. else:  
  22. os.chmod(subpath, stat.S_IREAD|stat.S_IWRITE)  
  23. os.unlink(subpath)  
  24. count += 1  
  25. os.rmdir(path)  
  26. count += 1  
  27. return count  
  28. if len(sys.argv) != 2:  
  29. print "Usage: python cleansvn.py path"  
  30. sys.exit(1)  
  31. walk(sys.argv[1])删除某目录下所有文件和文件夹:  
  32. Code  
  33. #!/usr/bin/env python  
  34. #coding=utf-8  
  35. import os  
  36. def delete_all_file(path):  
  37. "delete all folers and files"  
  38. if os.path.isfile(path):  
  39. try:  
  40. os.remove(path)  
  41. except:  
  42. pass  
  43. elif os.path.isdir(path):  
  44. for item in os.listdir(path):  
  45. itemsrc = os.path.join(path, item)  
  46. delete_all_file(itemsrc)  
  47. try:  
  48. os.rmdir(path)  
  49. except:  
  50. pass  
  51. if __name__ == "__main__":  
  52. dirname = r'F:\trunk' 
  53. print delete_all_file(dirname) 

以上就是我们对Python递归的相关介绍。

责任编辑:曹凯 来源: 博客园
相关推荐

2010-03-10 19:34:45

Python主线程

2020-07-08 15:10:11

Python数据分析代码

2010-03-12 14:51:47

Python布尔表达式

2021-12-02 08:47:40

LinuxLinux命令

2019-10-11 08:46:45

Python数据Numpy

2009-12-24 16:09:42

ADO.NET数据源

2009-12-24 10:12:02

Linux查看文件编码

2016-12-14 09:24:42

文件目录压缩

2023-12-13 13:47:00

Linux重组文件

2010-04-02 15:04:14

Oracle递归查询

2010-01-07 17:02:27

JSON序列化

2011-10-27 14:15:05

Java 7

2010-02-23 14:33:55

Python语言

2010-06-10 13:45:47

openSUSE软件源

2010-03-23 17:53:46

Python递归文件

2010-03-09 09:23:30

Python中文

2017-06-01 15:30:32

LinuxVim文件加密

2009-12-16 11:23:29

VS命令

2023-10-17 16:24:27

PythonCSV

2022-11-07 07:04:25

点赞
收藏

51CTO技术栈公众号