gpt4 book ai didi

Python - 使用utf-8编码读写csv文件

转载 作者:太空狗 更新时间:2023-10-30 01:11:46 24 4
gpt4 key购买 nike

我正在尝试读取一个 csv 文件,它的标题包含外来字符,我遇到了很多问题。

首先,我正在使用一个简单的 csv.reader 读取文件

filename = 'C:\\Users\\yuval\\Desktop\\בית ספר\\עבודג\\new\\resources\\mk'+ str(mkNum) + 'Data.csv'
raw_data = open(filename, 'rt', encoding="utf8")
reader = csv.reader(raw_data, delimiter=',', quoting=csv.QUOTE_NONE)
x = list(reader)
header = x[0]
data = np.array(x[1:]).astype('float')

var header应该是一个包含文件头的数组,但是它返回给我的数组是

['\ufeff"dayPart"', '"length"', '"ifPhoto"', '"ifVideo"', '"ifAlbum"', '"לא"', '"הוא"', '"בכל"', '"אותם"', '"זה"', '"הם"', '"כדי"', '"את"', '"יש"', '"לי"', '"היא"', '"אני"', '"רק"', '"להם"', '"על"', '"עם"', '"של"', '"המדינה"', '"כל"', '"גם"', '"הזה"', '"אם"', '"ישראל"', '"לכל"', '"מי"', '"ל"', '"אמסלם"', '"לנו"', '"אבל"', '"זו"', '"אין"', '"שבת"', '"שלום"', '"כ"', '"שלנו"', '"היום"', '"ומבורך"', '"ח"', '"דודי"', '"ר"', '"הפנים"', '"מה"', '"כי"', '"ה"', '"אחד"', '"ולא"', '"יותר"']

而且我不知道为什么它会在第一个对象和双引号中添加\ufeff。

之后,我需要写入另一个 csv 文件并在标题中使用外来字符。我试图那样做,但它把字符写成奇怪的符号。

with open('C:\\Users\\yuval\\Desktop\\בית ספר\\עבודג\\new\\variance reduction 1\\mk'+ str(mkNum) + 'Data.csv', 'w', newline='', encoding='utf8') as csvFile:
csvWriter = csv.writer(csvFile, delimiter=',')
csvWriter.writerow(newHeader)

有谁知道如何解决这个问题并在 csv 文件的 header 中使用 utf8 编码?

最佳答案

您报告了三个不同的问题。由于没有足够的信息可以确定,所以这有点猜测,但您应该尝试以下操作:

  1. 输入编码:按照评论中的建议,尝试“utf-8-sig”。这将从您的输入中删除 Byte Order Mark (BOM)。

  2. 双引号:在 csv 参数中,您指定 quoting=csv.QUOTE_NONE。这告诉 csv 库 CSV 表是在没有使用引号的情况下编写的(用于转义可能被误认为字段或行分隔符的字符)。然而,这显然不是真的,因为输入在每个字段周围都有 引号。请尝试使用 csv.QUOTE_MINIMAL(默认值)或 csv.QUOTE_ALL

  3. 输出编码:你说输出包含“奇怪的符号”。我怀疑输出实际上没问题,但您使用的工具默认情况下无法正确显示 UTF-8 文本:许多 Windows 应用程序(例如 Excel)仍然更喜欢 UTF-16 和本地化的 8 位编码,例如 CP-1255 。与问题 1 一样,您应该尝试编解码器“utf-8-sig”:BOM 被许多查看者/编辑者理解为编码提示。

关于Python - 使用utf-8编码读写csv文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48085319/

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