附加文件时缺少行

发布于 2024-12-06 13:06:02 字数 1055 浏览 0 评论 0原文

我对 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

我试图找出是否存在内存限制......否则我没有任何想法。

I am new to both stackoverflow and python, so this might look obvious:

In this procedure I want to create a new file named database out of a list of files generated by a previous procedure. The files in the list are quite big (around 13.6 MB). The goal is to have a single file with lines from all other:

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)

Then if I:

file_join(a_file_list)

I get the database file, but 26 lines are missing and the last one is not complete.
Here is the ending of the file:

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

I have tried to find out if there is a memory limitation... Otherwise I got no ideas.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

拥抱影子 2024-12-13 13:06:02

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

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

I'm going to use my psychic debugging skills, and guess that you don't have a database.close().

If you don't close the file when writing to it, there may still be data in the Python output buffers that hasn't been written to the OS yet. If your program exits at that point, then the data is not written to disk and you will be missing data at the end.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文