用Python提取文件夹下的特定扩展名的文件

用Python提取文件夹下的特定扩展名的文件

  用Python提取文件夹下的特定扩展名的文件
 

 

 

      不知道什么时候,网闲着没用,挂了个linux的视屏教程,里面有很多个文件夹,有很多无关的文件。这对于像我没收藏垃圾文件癖好的人来说,简直是不能忍的。所以当时就打算自己手动一个一个提取出来,归到了某个文件夹。无奈文件实在太多了,实在没那份闲情,一个一个去提取。所以就打算写个VC的小程序,当时寒假在家里,对着那一大堆的windows API,还是一堆English的函数描述,顿时把我兴趣给打没了。确实是自己比较懒,静不下心来专研。

     这几天,在学习Boost库,发现里面有个为python写的字库,顿时燃起我学期Python的欲望,主要是想看看把这两门语言结合起来用会有什么优势。谷歌了一下,都说python核心编程还不错,但翻译的质量不怎么行。记得以前在某个大牛的博客上看到过,翻译质量不好的,宁可不看,去看原版书。所以我便傻乎乎的跑去amazon网站上面,找了一门五星级的书,<<Beginning Python Using Python 2.6 and Python 3.1 - James W. Payne>>,打印出来,开始了我的Python之旅。

 

     幸好以前MSDN看多了,英语还算勉强过得去,再加上Google强大的翻译在,怕啥啊。一口气把基本语法看完了,觉得很奇怪,怎么语法才200页不到啊,200页不到也能把基本类型,函数,异常,类,OOP,都讲完。这跟我以前看C++差距也太大了吧。C++那语法,真是能把你折磨死啊。后来又找同学借了本python核心编程,发现那边的语法讲的详细多了。

所以这几天转战那本书。

 

      说了那么多,还是回归主题吧。这个程序其实很简单,不用正则表达式(确实是个好东西,Boost使C++也支持regular expressions 了,呵呵,只是我还没开始学习)的话,也很容易。不罗嗦了,看程序吧

 

view plaincopy to clipboardprint?
01.""" 
02.   This module is to copy file with the specific extension from one directory 
03.   to the specific directory 
04.""" 
05. 
06.import os  
07.import shutil  
08. 
09.def file_extension(fromPath,extension,toPath):  
10.    if os.path.isdir(fromPath):  
11.        fileAll = os.listdir(fromPath)  
12.        for each in fileAll:  
13.            absolutePath = os.path.join(fromPath,each)  
14.            if os.path.isdir(absolutePath):  
15.                file_extension(absolutePath,extension,toPath)  
16.            else:  
17.             if absolutePath.endswith(extension):      
18.            print absolutePath  
19.                    shutil.copy(absolutePath,toPath)  
20.    else:  
21.        print "please input correct path!!!" 
"""
   This module is to copy file with the specific extension from one directory
   to the specific directory
"""

import os
import shutil

def file_extension(fromPath,extension,toPath):
    if os.path.isdir(fromPath):
        fileAll = os.listdir(fromPath)
        for each in fileAll:
            absolutePath = os.path.join(fromPath,each)
            if os.path.isdir(absolutePath):
                file_extension(absolutePath,extension,toPath)
            else:
          if absolutePath.endswith(extension):   
      print absolutePath
                    shutil.copy(absolutePath,toPath)
    else:
        print "please input correct path!!!"

 

不用我注释了吧,相当简单。

才开始学习python,这个代码写的一定很丑,以后再回来改吧。