微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么合并后的文件比输入文件少一行?

如何解决为什么合并后的文件比输入文件少一行?

我正在做一些多线程网络抓取并将每个线程 100 行写入 100 个文件。我检查以确保每个文件都有 100 行,然后我合并。然后我检查以确保合并的文件有 10000 行。只是这一次,合并后的文件似乎少了一行。所有其他运行都有 10000 行。知道为什么合并的文件会少一行吗?这是我用来合并的代码。我检查过所有输入文件都有 100 行。他们都这样做。所以我不知道为什么合并后的文件少了一行。

with open(rf"data\run12.txt","w",encoding="utf-8") as outfile:
    for fname in filenames:
        with open(fname,"r",encoding = "utf-8") as infile:
            for line in infile: 
                outfile.write(line)

解决方法

当文件的最后一行不是新行时会发生这种情况。我的一个输入文件最后没有写换行符,所以我在每个输入文件中有 100 行,但输出中只有 9999 行,因为在一个输入文件的末尾缺少换行符导致其最后一个行与相邻输入文件的第一行合并。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。