【问题标题】:How to read a file and write it entirely to several text files using Python?如何使用 Python 读取文件并将其完全写入多个文本文件?
【发布时间】:2019-04-17 16:28:21
【问题描述】:

我想加载/读取一个文本文件并将其“完全”写入另外两个文本文件。稍后我会将其他不同的数据写入这两个文件的以下内容。 问题是加载的文件只写入第一个文件,而加载的文件中没有数据写入第二个文件。

我正在使用的代码:

fin = open("File_Read", 'r')
fout1 = open("File_Write1", 'w')
fout2 = open("File_Write2", 'w')

fout1.write(fin.read())
fout2.write(fin.read())   #Nothing is written here!

fin.close()  
fout1.close()
fout2.close()

发生了什么,解决方案是什么? 我更喜欢使用 open 而不是 with open

谢谢。

【问题讨论】:

    标签: python file read-write


    【解决方案1】:

    显然fin.read() 读取了所有行,下一个fin.read() 将从上一个.read() 结束的地方继续(这是最后一行)。为了解决这个问题,我会选择:

    text_fin = fin.read()
    fout1.write(text_fin)
    fout2.write(text_fin)
    

    【讨论】:

      【解决方案2】:
      fin = open("test.txt", 'r')
      data = fin.read()
      fin.close()  
      
      fout1 = open("test2.txt", 'w')
      fout1.write(data)
      fout1.close()
      
      fout2 = open("test3.txt", 'w')
      fout2.write(data)
      fout2.close()
      

      注意with open 是最安全、最好的方法,但至少您需要在不再需要文件时立即关闭该文件。

      【讨论】:

        【解决方案3】:

        您可以尝试逐行遍历原始文件并将其附加到两个文件中。您遇到了问题,因为 file.write() 方法需要字符串参数。

        fin = open("File_Read",'r')
        fout1 = open("File_Write1",'a')   #append permissions for line-by-line writing
        fout2 = open("File_Write2",'a')   #append permissions for line-by-line writing
        for lines in fin:
            fout1.write(lines)
            fout2.write(lines)
        
        fin.close()
        fout1.close()
        fout2.close()
        

        *** 注意:不是最有效的解决方案。

        【讨论】:

          猜你喜欢
          • 2017-10-03
          • 2018-06-27
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-12-12
          • 1970-01-01
          • 2017-05-11
          • 1970-01-01
          相关资源
          最近更新 更多