您的位置首页生活百科

python如何实现for循环操作文件?

python如何实现for循环操作文件?

的有关信息介绍如下:

python如何实现for循环操作文件?

python用for循环遍历文件操作,代码如下:

#!\urs\bin\env python

#encoding:utf-8 #设置编码方式

import os

import re

class 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) in self.file_extend: ##不在后缀名 检查范围中

continue

t_sum.append(self.func(abs_path))

return t_sum

if '__main__'==__name__:

root_dir = r'D:\harness

ewshoppingcart\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