文件不会写在python中

2 python file-io for-loop

我正在尝试替换当前目录中所有文件中的字符串.由于某种原因,我的临时文件结束了空白.看来我的.write没有工作,因为第二个文件可能在其范围之外声明了吗?我是python的新手,所以仍然在攀登学习曲线......谢谢!

编辑:我知道我的临时文件当前没有被复制.我也知道有更有效的方法可以做到这一点.我这样做是为了练习.如果有人能够具体回答为什么.write方法无法在这里工作,那就太好了.谢谢!

import os
import shutil


for filename in os.listdir("."):
    file1 = open(filename,'r')  
    secondfile = open("temp.out",'w')
    print filename
    for line in file1:
        line2 = line.replace('mrddb2.','shpdb2.')
        line3 = line2.replace('MRDDB2.','SHPDB2.')
        secondfile.write(line3)
    print 'file copy in progress'
    file1.close()
    secondfile.close()
Run Code Online (Sandbox Code Playgroud)

ber*_*nie 5

只是看了一眼,看来你的问题就是'w'.

看起来你一直在覆盖,而不是追加.

所以你基本上是循环遍历文件,
最后你只是将最后一个文件复制到临时文件中.

您可能想要用'a'而不是'w'打开文件.

  • +1这里唯一有用的答案.这意味着如果最后一个文件为空,则temp.out将在循环结束时为空. (2认同)