我想加载/读取一个文本文件并将其“全部”写入其他两个文本文件。稍后,我将其他不同的数据写入这两个文件的下面。 问题在于加载的文件仅写入第一个文件,而该加载的文件中没有数据写入第二个文件。
我正在使用的代码:
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 而不是 open 。
谢谢。
答案 0 :(得分:1)
显然,fin.read()
读取了所有行,下一个fin.read()
从上一个.read()
结束的地方(最后一行)继续。为了解决这个问题,我只需要:
text_fin = fin.read()
fout1.write(text_fin)
fout2.write(text_fin)
答案 1 :(得分:0)
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
是最安全和最佳的方法,但至少您需要在不再需要该文件时将其关闭。
答案 2 :(得分:0)
您可以尝试逐行遍历原始文件并将其附加到两个文件中。您正在遇到问题,因为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()
***注意:不是最有效的解决方案。