附加文件时缺少行

时间:2011-09-22 19:39:58

标签: python file-io

我是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)

我获取了数据库文件,但缺少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 个答案:

答案 0 :(得分:5)

我将使用我的通灵调试技巧,并猜测你没有database.close()

如果在写入文件时没有关闭文件,Python输出缓冲区中可能仍有数据尚未写入操作系统。如果您的程序在那时退出,那么数据不会写入磁盘,最后您将丢失数据。