gpt4 book ai didi

python - 工业强度 csv 阅读器(python)

转载 作者:太空宇宙 更新时间:2023-11-04 00:51:00 24 4
gpt4 key购买 nike

这是我的用例:我的工作是清理经常从网页上删除的 CSV 文件(大部分是英语,但一些德语和其他奇怪的非 unicode 字符潜入其中)。 Python 3 默认是“utf-8”和通常的

import csv

#open file
with open('input.csv','r',encoding = 'utf-8')
reader = csv.reader(f)

即使到处都是 try/catch block ,也会因 UnicodeEncodeError 而失败

如果我什至无法打开它,我不知道如何清理输入。我的最终目标只是将每一行读入一个我称之为文本的列表。

我没有想法我什至尝试过以下方法:

 for encoding in ('utf-8','latin-1',etc, etc):
try:
//open the file

我不能对编码做任何假设,因为它们可能是在世界其他地方的 unix 机器上编写的,而我在 windows 机器上。输入只是简单的字符串,否则示例

测试用例:“这是一个测试用例的示例,当在文本处理器中打开时,测试可能会换行”

最佳答案

也许尝试完全阅读内容,然后以与您提到的大致相同的方式使用 bytes.decode():

#!python3
import csv
from io import StringIO

with open('input.csv', 'rb') as binfile:
csv_bytes = binfile.readall()

for enc in ('utf-8', 'utf-16', 'latin1'):
try:
csv_string = csv_bytes.decode(encoding=enc, errors='strict')
break
except UnicodeError as e:
last_err = e
else: #none worked
raise last_err


with StringIO(csv_string) as csvfile:
csv = csv.reader(csvfile)
for row in csv:
print(row[0])

关于python - 工业强度 csv 阅读器(python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37152856/

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