我正在读取一个csv文件并打印到Python中的控制台。第一行打印是在字符串的开头包含一些奇数字符。整个文件为:
我的代码是:
import csv
with open("C:\\Users\\user\\key.csv") as file:
reader = csv.reader(file)
for row in reader:
print(row)
输出为:
['john', '12345']
['jacob', '23456']
['jingle', '34567']
['heimer', '45678']
我不知道第一行中的“”来自哪里。
答案 0 :(得分:2)
“ï”是一个byte order mark (BOM),用于某些Unicode文件或流的开头,以表示多字节编码变体(UTF-16或UTF)的“字节序”。 -32),或者,像在这种情况下,以指示该文件是使用UTF-8。在UTF-8文件开头使用BOM是可选的,但是某些应用程序(例如Microsoft Excel)将使用BOM来指示文件正在使用UTF-8。
如果您使用的是Python 3,并且知道文件将使用UTF-8,则打开文件时应该可以添加编码:
with open("C:\\Users\\user\\key.csv", encoding="utf-8-sig") as file:
reader = csv.reader(file)
for row in reader:
print(row)
这是关于此的Python文档: https://docs.python.org/3/howto/unicode.html#reading-and-writing-unicode-data