Csv UnicodeDecodeError:&x27;charmap';编解码器可以';t解码7240位置的字节0x8d:字符映射到<;未定义>;
我是做硕士论文的学生。作为我论文的一部分,我正在使用python。我正在读取Csv UnicodeDecodeError:&x27;charmap';编解码器可以';t解码7240位置的字节0x8d:字符映射到<;未定义>;,csv,python-3.x,pandas,decode,python-import,Csv,Python 3.x,Pandas,Decode,Python Import,我是做硕士论文的学生。作为我论文的一部分,我正在使用python。我正在读取.csv格式的日志文件,并以格式良好的方式将提取的数据写入另一个.csv文件。但是,当读取文件时,出现以下错误: 回溯(最近一次调用上次):文件 “C:\Users\SGADI\workspace\DAB\u Trace\my\u code\Trace\u parcer.py”,第19行, 对于行内读取器: 文件“C:\Users\SGADI\Desktop\Python-32bit-3.4.3.2\Python-3.
.csv
格式的日志文件,并以格式良好的方式将提取的数据写入另一个.csv
文件。但是,当读取文件时,出现以下错误:
回溯(最近一次调用上次):文件
“C:\Users\SGADI\workspace\DAB\u Trace\my\u code\Trace\u parcer.py”,第19行,
对于行内读取器:
- 文件“C:\Users\SGADI\Desktop\Python-32bit-3.4.3.2\Python-3.4.3\lib\encodings\cp1252.py”,
第23行,在解码返回
编解码器.charmap\u解码(输入、自身错误、解码表)[0]
- UnicodeDecodeError:“charmap”编解码器无法解码位置7240中的字节0x8d:字符映射到
pandas
,但仍然出现错误。
我甚至删除了日志文件中的一行,但错误发生在下一行
请帮我找到解决方案,谢谢。我已经解决了这个问题。
我们可以使用这个代码
import codecs
types_of_encoding = ["utf8", "cp1252"]
for encoding_type in types_of_encoding:
with codecs.open(filename, encoding = encoding_type, errors ='replace') as csvfile:
your code
....
....
我只需在open()中添加一个参数就解决了这个问题
请发布报告(打开('test_log_20150325_gps.csv','rb')。阅读(7290)[7190:])。这将向我们显示第7240字节周围的CSV文件的一些内容。使用它,我们可以猜测可能的编解码器是什么。当我发布上面的命令b'XPMSG\u OPCODE\u SET\u CONTROL\u FLAGS\u CMD时,我在控制台中得到了这个结果;;;;;;;;;RR=2 OP=DAB\U NXPMSG\U OPCODE\U SET\U CONTROL\U FLAGS\U CMD CAVisibil'此处不一致,因为您发布的
报告中没有字节'\x8d'
。您可以发布测试日志\u 20150325\u gps.csv
?这是文件的链接
import codecs
types_of_encoding = ["utf8", "cp1252"]
for encoding_type in types_of_encoding:
with codecs.open(filename, encoding = encoding_type, errors ='replace') as csvfile:
your code
....
....
with open('input.tsv','rb') as f:
for ln in f:
decoded=False
line=''
for cp in ('cp1252', 'cp850','utf-8','utf8'):
try:
line = ln.decode(cp)
decoded=True
break
except UnicodeDecodeError:
pass
if decoded:
# use 'line'
with open(filename, encoding = 'cp850') as csv_file:
csv_reader = csv.reader(csv_file, delimiter=',')