python迴圈遍曆檔案操作

來源:互聯網
上載者:User
#!\urs\bin\env python#encoding:utf-8       #設定編碼方式  import osimport reclass loop_file:    def __init__(self, root_dir, short_exclude=[], long_exclude=[], file_extend=[]):        self.root_dir = root_dir        self.short_exclude = short_exclude        self.long_exclude = long_exclude        self.file_extend = file_extend        def __del__(self):        pass        def start(self, func):        self.func = func        return self.loop_file(self.root_dir)        def loop_file(self, root_dir):        t_sum = []        sub_gen = os.listdir(root_dir)        for sub in sub_gen:            is_exclude = False            for extends in self.short_exclude:  ##在不檢查檔案、目錄範圍中                if extends in sub:              ##包含特定內容                    is_exclude = True                    break                if re.search(extends, sub):     ##匹配指定正則                    is_exclude = True                    break                                if is_exclude:                continue                        abs_path = os.path.join(root_dir, sub)            is_exclude = False            for exclude in self.long_exclude:                if exclude == abs_path[-len(exclude):]:                    is_exclude = True                    break            if is_exclude:                continue            if os.path.isdir(abs_path):                t_sum.extend(self.loop_file(abs_path))            elif os.path.isfile(abs_path):                            if not "." + abs_path.rsplit(".", 1)[1] in self.file_extend:  ##不在尾碼名 檢查範圍中                    continue                t_sum.append(self.func(abs_path))        return t_sum    if '__main__'==__name__:    root_dir = r'D:\harness\newshoppingcart\testcase\promo\single_promo'    short_exclude = ['.svn', '.*_new.rb']     ###不包含檢查的短目錄、檔案    long_exclude = []                         ###不包含檢查的長目錄、檔案    file_extend = ['.rb']                     ###包含檢查的檔案類型    lf = loop_file(root_dir, short_exclude, long_exclude, file_extend)    for f in lf.start(lambda f: f):        print f

給定一個主目錄,迴圈其下特定過濾規則的檔案,並傳給自訂的處理函數,最後返回每一個自訂函數返回的結果內容的列表。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.