我是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
我试图找出是否有内存限制......否则我没有想法。
答案 0 :(得分:5)
我将使用我的通灵调试技巧,并猜测你没有database.close()
。
如果在写入文件时没有关闭文件,Python输出缓冲区中可能仍有数据尚未写入操作系统。如果您的程序在那时退出,那么数据不会写入磁盘,最后您将丢失数据。