Python:读取csv并打印到控制台。正在打印奇怪的字符

时间:2019-02-02 04:42:44

标签: python csv

我正在读取一个csv文件并打印到Python中的控制台。第一行打印是在字符串的开头包含一些奇数字符。整个文件为:

csv example

我的代码是:

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']

我不知道第一行中的“”来自哪里。

1 个答案:

答案 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