Python CSV error: line contains NULL byte, but no NULL byte found in the file

Python CSV error: line contains NULL byte, but no NULL byte found in the file

我正在尝试读取一些 txt 文件、制表符分隔的数据并使用下面的代码,它向我显示以下错误:

for row in reader:

Error: line contains NULL byte

代码基本上是试图从特定列中获取一些信息。下面是它的删节版:

with open('07table.txt', encoding = "utf-8", errors='ignore') as fo:
    reader = csv.reader(fo, delimiter='\t', quoting=csv.QUOTE_MINIMAL)

在过去的一周里,我试图调查文件是否包含 NULL 字节。我已经使用下面的代码来检查这是否属实,令我惊讶的是我没有在文件中找到任何 NULL 字节:

if '\x00' in open('07table.txt').read():
    print("you have null bytes in your input file")
else:
    print("you don't")

为了安全起见,我也运行一个代码来替换我的txt文件中的NULL字节,但我仍然有同样的错误。

到目前为止我尝试过的另一件事是更改为旧版本的 Spyder 并将 Python 版本降级到 3.5.14,因为我认为这可能是我安装的环境的问题。从我的代码成功读取两个以前应该包含 NULL 字节的文件的意义上说,这产生了一些影响。但是,当它通过这 2 个文件时,代码会呈现与上面发布的相同的错误。

此时,我非常确定文件不包含 NULL 字节。关于我为什么会收到此错误的任何想法?

我找到了问题所在。我正在从格式化为 NFTS 的外部硬盘驱动器读取文件,而代码是 运行 在格式化为 HFS 的 macOS 上。

格式化外部驱动器以匹配我笔记本电脑上的格式后,空字节问题消失了。