python如何实现for循环操作文件?
答案:3 悬赏:0 手机版
解决时间 2021-11-12 05:57
- 提问者网友:孤山下
- 2021-11-12 01:37
python如何实现for循环操作文件?
最佳答案
- 五星知识达人网友:酒者煙囻
- 2021-11-12 02:27
python用for循环遍历文件操作,代码如下:
#!ursinenv 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)[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 estcasepromosingle_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
#!ursinenv 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)[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 estcasepromosingle_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
全部回答
- 1楼网友:未来江山和你
- 2021-11-12 03:40
你可以将a.txt的内容读取出来,然后循环的进行执行
file_read = open('a.txt','r')
for line in file_read :
os.system(line)
不知道你读出来的是啥,但是你可以用 .write("内容")来写进文件
file_read = open('a.txt','r')
for line in file_read :
os.system(line)
不知道你读出来的是啥,但是你可以用 .write("内容")来写进文件
- 2楼网友:酒者煙囻
- 2021-11-12 02:36
#获取a.txt的内容
content=[line for line in open("a.txt","rt").readlines() if line.strip()!=""]
#产生新的内容
new_content=[]
loop_numbers=500 #循环次数
import random
for i in xrange(loop_numbers):
#随机从旧内容中选择一行,添加到新内容中
new_content.append( content[random.randint(len(content))] )
#将新内容添加到旧文件中
open("a.txt","wa").write("\r".join(new_content))
content=[line for line in open("a.txt","rt").readlines() if line.strip()!=""]
#产生新的内容
new_content=[]
loop_numbers=500 #循环次数
import random
for i in xrange(loop_numbers):
#随机从旧内容中选择一行,添加到新内容中
new_content.append( content[random.randint(len(content))] )
#将新内容添加到旧文件中
open("a.txt","wa").write("\r".join(new_content))
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯