使用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递归的相关介绍。

网站题目:使用Python递归对文件进行相关处理
标题网址:http://www.shufengxianlan.com/qtweb/news39/158039.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联