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

已有一个文件a.txt,内容为:command$nodebugx1,config#,2,concommand$debugx1,config#,2,concommand$d... 已有一个文件a.txt,内容为:

command$ no debug x1,config#,2,con
command$ debug x1,config#,2,con
command$ default,config#,2,con
command$ ip 10.1.1.1 ,config#,2,con

现在我想写个函数来读这个文件,并用for实现循环,循环次数i可控。
循环第i次时,把上面几行改变为:
command$ no debug x1+i,config#,2,con
command$ debug x1+i,config#,2,con
command$ default,config#,2,con
command$ ip 10+i.1.1.1 ,config#,2,con

循环结束后,把新增的内容填到a.txt中,请问如何实现这个函数?
展开
 我来答
曹晓山11
推荐于2018-03-13 · 知道合伙人互联网行家
曹晓山11
知道合伙人互联网行家
采纳数:3033 获赞数:52068
毕业南阳理工学院计算机科学与技术专业,本科学位。互联网行业从业3年工作经验,读过编程类相关书籍多本。

向TA提问 私信TA
展开全部

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)[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
bdwisyou7d
推荐于2017-12-16 · TA获得超过1.3万个赞
知道大有可为答主
回答量:3774
采纳率:81%
帮助的人:1075万
展开全部
#获取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))
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
天才之惑
2013-03-15
知道答主
回答量:4
采纳率:0%
帮助的人:5815
展开全部
你可以将a.txt的内容读取出来,然后循环的进行执行
file_read = open('a.txt','r')
for line in file_read :
os.system(line)
不知道你读出来的是啥,但是你可以用 .write("内容")来写进文件
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式