python解释器无法解释文件
import csvwith open('C:\\Users\\Lenovo\\Desktop\\测试1.csv','r') as file:
reader=csv.reader(file)
for k in reader:
print(reader)
这是代码
我不知道为什么不能添加截图
Traceback (most recent call last):
File "C:\Users\Lenovo\Desktop\hhh.py", line 4, in <module>
for k in reader:
UnicodeDecodeError: 'gbk' codec can't decode byte 0xbf in position 2: illegal multibyte sequence
这是错误原因
这里报错的原因是因为文件的编码和 Python 程序打开的编码不一致,导致解码错误
在 open 里面加入 encoding = "utf-8" 参数即可,参考代码:
import csv
with open('C:\\Users\\Lenovo\\Desktop\\测试1.csv','r', encoding="utf-8") as file:
reader=csv.reader(file)
for k in reader:
print(reader)
这个得看你的csv是哪来的如果是微软的Excel导出的 那么必须是utf-8-sig否则会读出\ufeff 这个符号
我整一个写入的例子
import csv
filename = '名单.csv'
with open(filename, "w", encoding='utf-8-sig', newline='') as csvFile:
writer = csv.writer(csvFile)
fileHeader = ("姓名", "年龄")
writer.writerow(fileHeader)
data = ("张三",17)
writer.writerow(data) Twilight6 发表于 2022-5-29 11:06
这里报错的原因是因为文件的编码和 Python 程序打开的编码不一致,导致解码错误
在 open 里面加入 enc ...
<_csv.reader object at 0x000001B9F70426E0>
<_csv.reader object at 0x000001B9F70426E0>
<_csv.reader object at 0x000001B9F70426E0>
<_csv.reader object at 0x000001B9F70426E0>
得到的是这个欸,看不懂{:5_107:} 王老大脱发季 发表于 2022-5-30 15:27
得到的是这个欸,看不懂
这个是 csv.reader 对象,这里 print 改成 打印 k, 试试看:
import csv
with open('C:\\Users\\Lenovo\\Desktop\\测试1.csv','r', encoding="utf-8") as file:
reader=csv.reader(file)
for k in reader:
print(k) kogawananari 发表于 2022-5-29 13:21
这个得看你的csv是哪来的如果是微软的Excel导出的 那么必须是utf-8-sig否则会读出%ufeff 这个符号
我 ...
为什么我在后面加入
reader=csv.reader(filename)
for k in reader:
print(reader)
得到这个
<_csv.reader object at 0x00000212F6CF3040>
<_csv.reader object at 0x00000212F6CF3040>
<_csv.reader object at 0x00000212F6CF3040>
<_csv.reader object at 0x00000212F6CF3040>
<_csv.reader object at 0x00000212F6CF3040>
<_csv.reader object at 0x00000212F6CF3040>
{:10_266:} Twilight6 发表于 2022-5-30 15:28
这个是 csv.reader 对象,这里 print 改成 打印 k, 试试看:
哦哦,可以了,谢谢 Twilight6 发表于 2022-5-30 15:28
这个是 csv.reader 对象,这里 print 改成 打印 k, 试试看:
['\ufeff2013水平', '2015水平']
['0.441 ', '0.391 ']
['0.449 ', '0.408 ']
请问最开始出现的\ufeff 怎么处理呢 王老大脱发季 发表于 2022-5-30 15:36
['%ufeff2013水平', '2015水平']
['0.441 ', '0.391 ']
['0.449 ', '0.408 ']
encoding 的 utf-8 改成 UTF-8-sig
Twilight6 发表于 2022-5-30 15:49
encoding 的 utf-8 改成 UTF-8-sig
感谢! kogawananari 发表于 2022-5-29 13:21
这个得看你的csv是哪来的如果是微软的Excel导出的 那么必须是utf-8-sig否则会读出%ufeff 这个符号
我 ...
感谢!
页:
[1]