python - 文件不会用python写

标签 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()

最佳答案

只看一眼,您的问题似乎出在“w”上。

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

所以你基本上是在遍历文件,
到最后,您只将最后一个文件复制到您的临时文件中。

您可能希望使用“a”而不是“w”打开文件。

关于python - 文件不会用python写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/984216/

相关文章:

java - 如何在不写入输出流的情况下从 ZipInputStream 获取每个 ZipFile 条目的字节/内容?

android - 如何在 Django View 中处理 Web 和移动请求

Python VsCode : cannot find parser. pyx

android - 在没有 SD 卡的应用程序之间共享临时文件

python - os.path.exists() 在 Windows 上的 %appdata% 中给出误报

python - 从一个列表中查找另一个列表中的字符串对象

python - 合并列表中的重复项? - 问题比看起来更复杂

python - 基于一个键/值对合并Python中的字典列表?

java - 这个传统的 for 循环与 for each 循环的等价物是什么

python - 列表从 Python 中的另一个列表返回唯一值