2

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

对于阅读器中的行:

错误:行包含 NULL 字节

该代码基本上是试图从特定列中获取一些信息。以下是它的精简版:

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 字节的文件。但是,当它通过这两个文件时,代码会呈现与上面发布的相同的错误。

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

4

1 回答 1

0

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

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

于 2021-04-25T16:36:27.577 回答