2022-02-17 09:08来源:m.sf1369.com作者:宇宇
python用for循环遍历文件操作,代码如下:
#!\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
#获取a.txt的内容content=[line for line in open(a.txt,rt).readlines() if line.strip()!=]#产生新的内容new_content=[]loop_numbers=500 #循环次数import randomfor i in xrange(loop_numbers): #随机从旧内容中选择一行,添加到新内容中 new_content.append( content[random.randint(len(content))] )#将新内容添加到旧文件中open(a.txt,wa).write(\r.join(new_content))