You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

多文本拼接出现NUL字符,Notepad++与Notepad显示异常原因排查

文件拼接后出现NUL字符异常的原因分析

问题场景

我通过Python脚本将1000个文件拼接成output_file.txt,使用的代码如下:

import shutil

with open('output_file.txt','wb') as wfd:
    for f in file_paths:
        with open(f,'rb') as fd:
            shutil.copyfileobj(fd, wfd)
            wfd.write(b"\n")

在Notepad++和Notepad中打开该文件时,同一位置出现NUL字符显示异常,但文件其他部分显示正常。

可能的原因

  • 源文件本身携带NUL字符:你拼接的1000个文件中,某个(或某几个)源文件本身就包含二进制空字节(\x00,即NUL字符),脚本只是原样复制了这些内容到输出文件,刚好集中在你看到的异常位置。这是最常见的原因。
  • 源文件的编码/格式异常:如果某个源文件声称是文本格式,但实际存在编码错误(比如本该是UTF-8却混入了ASCII以外的空字节),当你用二进制模式读取时,这些错误的空字节会被保留并写入到输出文件中。
  • 缓冲区处理的极端情况:虽然概率很低,但shutil.copyfileobj在处理超大文件或者特殊格式文件时,缓冲区的读写操作可能出现边界错误,意外写入空字节。不过这种情况远不如源文件本身有问题的可能性高。
  • 换行写入的潜在冲突:你在每个文件末尾写入b"\n",如果某个源文件的末尾是不完整的二进制数据片段,和换行符拼接后,在文本编辑器中可能被解析为NUL字符,但这种情况非常少见。

内容的提问来源于stack exchange,提问作者frank

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 10:34:52