【发布时间】:2020-09-21 08:28:45
【问题描述】:
我正在尝试读取一些 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 字节。关于我为什么会收到此错误的任何想法?
【问题讨论】:
-
你试过这个链接吗? stackoverflow.com/questions/7894856/…。其中提到尝试使用 utf-16 编码打开文件。
-
感谢您的回复!我忘了提,但我实际上尝试了这个建议。对于我尝试使用 UTF-8、UTF-16 或 latin-1 解码的每个文件。大多数文件都以 UTF-8 编码。
标签: python file null filesystems csvreader