追加文件时丢失行

2 投票
1 回答
511 浏览
提问于 2025-04-17 02:52

我刚接触stackoverflow和python,所以可能有些地方看起来很简单:

在这个过程中,我想从之前生成的文件列表中创建一个新的文件,命名为database。这个列表里的文件都挺大的(大约13.6 MB)。我的目标是把所有文件的内容合并成一个文件:

database = open('current_database', 'a')

def file_apender(new):
    for line in new:
        database.write(line)

def file_join(list_of_files):
    for file in list_of_files:
        file_apender(file)

然后如果我:

file_join(a_file_list)

我得到了database文件,但有26行内容缺失,最后一行也不完整。这里是文件的结尾部分:

63052300774565. 12 4 3 0 0.37 0.79 10.89 12.00 1.21 25.26 0.00 0.00 0.00 0.00
63052300774565. 12 2 0 0 0.06 0.12 2.04 2.21 0.86 5.30 0.00 0.00 0.00 0.00
63052300774565. 12 0 0 0 0.12 0.26 3.13 4.63 3.81 11.95 0.00 0.00 0.00 0.00
63052300774565. 12 2 2 0 0.06 0.15 1.35 2.39 0.00 3.94 0.00 0.00 0.00 0.00
63052300774565. 12 0 1 0 0.06 0.08 1.13 1.29 3.60 6.16 0.00 0.00 0.00 0.00
63052300774565. 12 2 0 0 0.23 0.41 4.02 6.47 8.39 19.52 0.00 0.00 0.00 0.00
63052300774565. 12 1 3 0 0.05 0.16 1.85 2.50 0.57 5.13 0

我试着找出是否有内存限制……否则我也没有其他想法。

1 个回答

5

我来用我的超能力猜一下,你可能没有调用 database.close()

如果你在写文件的时候没有把它关闭,可能还有一些数据留在Python的输出缓冲区里,这些数据还没有写入到操作系统。如果这个时候你的程序突然结束了,那么这些数据就不会被写到硬盘上,你最后会发现数据丢失了。

撰写回答