for python中的循环:代码问题

时间:2014-09-17 17:36:41

标签: python

我能够以某种方式编写以下代码(从各种来源获取帮助):

langs=['C','Java','Cobol','Python']

f1=open('a.txt','r')

f2=open('abc.txt','w')

for i in range(len(langs)):

    for line in f1:

        f2.write(line.replace('Frst languag','{}'.format(langs[i])))

f1.close()

f2.close()

不知道为什么for循环没有运行到最后。因为每次打开txt时,只有'C'存储在txt中。我希望脚本运行,并且在脚本执行结束时,txt应该具有列表的最后一个值(这里是python)

1 个答案:

答案 0 :(得分:4)

在内部for循环的第一次传递之后,f1指向文件的末尾。所以随后的通行证都没有做任何事情。

最简单的解决方法是将f1=open('a.txt','r')移至for line in f1:之前。然后将为您的每种语言重新读取该文件。 (或者,您可以重新构建逻辑,以便在文件的一次传递中同时处理所有语言。)