gpt4 book ai didi

Python 读取 csv - BOM 嵌入到第一个键中

转载 作者:IT老高 更新时间:2023-10-28 21:01:17 25 4
gpt4 key购买 nike

我使用的是 Python 2.7.12。使用此代码段,我正在保存一个 utf-8 csv 文件。我在文件开头写了 BOM (byte order mark)。

import codecs
import csv

outputFile = open("test.csv", "wb")
outputFile.write(codecs.BOM_UTF8)
fieldnames = ["a", "b"]
writer = csv.DictWriter(outputFile, fieldnames, delimiter=";")
writer.writeheader()
row = dict([])
for i in range(10):
row["a"] = str(i).encode("utf-8")
row["b"] = str(i*2).encode("utf-8")
writer.writerow(row)
outputFile.close()

我想加载那个 csv 文件:

import codecs
import csv
inputFile = open("test.csv", "rb")
reader = csv.DictReader(inputFile, delimiter=";")
for row in reader:
print row["a"]
inputFile.close()

上面的代码会失败:KeyError: 'a'如果我打印行键,它们的外观是这样的:[u'\ufeffa', u'b']。 BOM 已嵌入到键 a 中。我做错了什么?

最佳答案

您必须告诉 open 这是带有 BOM 的 UTF-8。我知道这适用于 io.open:

import io

.
.
.
inputFile = io.open("test.csv", "r", encoding='utf-8-sig')
.
.
.

你必须以文本模式打开文件,“r”而不是“rb”。

关于Python 读取 csv - BOM 嵌入到第一个键中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40310042/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com