相关疑难解决方法(0)

Python CSV错误:行包含NULL字节

我正在使用一些CSV文件,使用以下代码:

reader = csv.reader(open(filepath, "rU"))
try:
    for row in reader:
        print 'Row read successfully!', row
except csv.Error, e:
    sys.exit('file %s, line %d: %s' % (filename, reader.line_num, e))
Run Code Online (Sandbox Code Playgroud)

一个文件抛出此错误:

file my.csv, line 1: line contains NULL byte
Run Code Online (Sandbox Code Playgroud)

我能做什么?谷歌似乎暗示它可能是一个Excel文件被不正当地保存为.csv.有什么方法可以解决Python中的这个问题吗?

==更新==

按照下面@ JohnMachin的评论,我尝试将这些行添加到我的脚本中:

print repr(open(filepath, 'rb').read(200)) # dump 1st 200 bytes of file
data = open(filepath, 'rb').read()
print data.find('\x00')
print data.count('\x00')
Run Code Online (Sandbox Code Playgroud)

这是我得到的输出:

'\xd0\xcf\x11\xe0\xa1\xb1\x1a\xe1\x00\x00\x00\x00\x00\x00\x00\x00\ .... <snip>
8
13834
Run Code Online (Sandbox Code Playgroud)

所以该文件确实包含NUL字节.

python csv

92
推荐指数
7
解决办法
11万
查看次数

如何检查文件是否是二进制文件并读取所有文件?

我怎么知道文件是否是二进制文件?

例如,编译的c文件.

我想从某个目录中读取所有文件,但我想忽略二进制文件.

unix shell binaryfiles

44
推荐指数
4
解决办法
5万
查看次数

Python:源代码字符串不能包含空字节

我正在使用Max OS X 10.10.3,我终于graphics.py在Python 3中展示了它之前没有出现任何模块.

但是,现在当我尝试import graphics,或者from graphics import *,我收到消息:

"source code string cannot contain null bytes"
Run Code Online (Sandbox Code Playgroud)

是否有任何Mac用户(使用Python 3)可能知道什么是错的?有人用过Zelle书和他的graphics.py模块吗?谢谢.

python macos zelle-graphics

13
推荐指数
4
解决办法
3万
查看次数

如何删除 Sublime Text 3 中的 &lt;0x00&gt; 字符?

问题

所以我有这个包含<0x00>字符的大文本文件(见下图)。

Sublime Text 3 with <0x00> 包括替换选项

如上图所示,我尝试使用正则表达式删除这些字符\x00。除此之外,我还tryed \0,并\00没有成功。

但是,当我尝试在 Sublime Text 中替换这些字符时,弹出窗口显示<0x00>确实已找到这些字符(见下图),到目前为止一切顺利。

发现的事件

不幸的是,当我单击“替换”按钮时,字符没有被替换。

我怎样才能摆脱这些<0x00>字符?

ps 重要的是要提到我不能对“0”进行搜索,因为这个文本文件包含零,我想保留它。

进度更新 #1

我设法将 <0x00> 字符复制到“查找”搜索框中(见下图)。

但是,即使我尝试用文本文件中的空字符替换此字符,也不会发生任何更改。

进度更新 1

进度更新 #2(解决方案)

没有@00 的帮助,我找不到这个问题的答案,谢谢!

解释

该文件以 UTF-16 编码,但我认为它是 UTF-8。该文件是在BOM UTF-8中打开的,这正是我无法删除<0x00>Sublime Text 3 中的(NUL) 字符的原因。

解决方案

在“bash”或“终端”中执行以下命令:

sed -i 's/\x0//g' [textfile_name].txt

replace sublimetext3

6
推荐指数
1
解决办法
4953
查看次数

Pandas“read_csv”函数为我的表中的所有块返回 NAN

我的原始 CSV 文件在每个块中都有 float64 值,但在我使用 pd.csv() 读取文件后,它返回一个空白表。我试图设置分隔符和函数的编码,但它根本没有帮助。CSV 文件是由软件自动生成的,我无法检查设置的设置。有什么方法可以将我的文件读取到具有正确值的数据框?

>>> pd.read_csv('./HISTORY_LOG_05-31-2018.CSV')
D  Unnamed: 1  Unnamed: 2      ...       Unnamed: 108  Unnamed: 109  Unnamed: 110
0 NaN         NaN         NaN      ...                NaN           NaN           NaN
1 NaN         NaN         NaN      ...                NaN           NaN           NaN
2 NaN         NaN         NaN      ...                NaN           NaN           NaN
3 NaN         NaN         NaN      ...                NaN           NaN           NaN
4 NaN         NaN         NaN      ...                NaN           NaN           NaN
5 NaN         NaN         NaN      ...                NaN           NaN           NaN

[6 rows x 111 columns]
Run Code Online (Sandbox Code Playgroud)

我将 CSV 文件简化为

A,B
0.000,0.000 …
Run Code Online (Sandbox Code Playgroud)

python csv pandas

4
推荐指数
2
解决办法
6078
查看次数

替换平面文件中的空字符^ @

我有一个由别人的软件生成的平面文件.它们在文件的某些位置插入空字符^ @.我希望用-9替换它们.如何在Mac OS X上的终端中有效地搜索和替换此字符?

谢谢.

还有另一篇文章在linux中解决了这个问题.

macos terminal

3
推荐指数
2
解决办法
1万
查看次数