我正在使用 python 从 Twitter 中提取阿拉伯语推文并将其保存为 CSV 文件,但是当我在 Excel 中打开保存的文件时,阿拉伯语显示为符号。然而,在 python、notepad 或 word 中,它看起来不错。
我可以知道问题出在哪里吗?
这是我在使用 Microsoft Excel 打开包含阿拉伯字符的 CSV 文件时经常遇到的问题。请尝试以下我在 Windows 和 MacOS 上最新版本的 Microsoft Excel 上测试过的解决方法:
在空白工作簿上打开 Excel
在 Data 选项卡中,单击 From Text 按钮(如果没有 激活,确保选择空单元格)
浏览并选择 CSV 文件
在文本导入向导中,将 File_origin 更改为“Unicode (UTF-8)”
下一步,从分隔符中选择文件中使用的分隔符,例如逗号
完成并选择导入数据的位置
阿拉伯字符应正确显示。
只需使用 encoding='utf-8-sig' 代替 encoding='utf-8' 如下:
import csv
data = u"اردو"
with(open('example.csv', 'w', encoding='utf-8-sig')) as fh:
writer = csv.writer(fh)
writer.writerow([data])
它在我的机器上运行。
最快的方法是将文件从 python 保存到 .csv 后:
我发现从Python将阿拉伯语保存到Excel文件中的唯一解决方案是使用pandas并保存到xlsx扩展名而不是csv中,xlsx似乎好一百万倍,这是我整理的代码,适用于我
import pandas as pd
def turn_into_csv(data, csver):
ids = []
texts = []
for each in data:
texts.append(each["full_text"])
ids.append(str(each["id"]))
df = pd.DataFrame({'ID': ids, 'FULL_TEXT': texts})
writer = pd.ExcelWriter(csver + '.xlsx', engine='xlsxwriter')
df.to_excel(writer, sheet_name='Sheet1', encoding="utf-8-sig")
# Close the Pandas Excel writer and output the Excel file.
writer.save()
众所周知,Excel 有一个糟糕的 csv 导入系统。长话短说,如果在同一系统上导入刚刚导出的 csv 文件,它将顺利运行。否则,csv 文件应使用 Windows 系统编码和分隔符。
一个相当笨拙但强大的系统是使用 LibreOffice 或 Oracle OpenOffice。除了 csv 模块之外,两者在任何功能上都远远超出了 Excel:它们将允许您指定分隔符和可选的引用字符以及 csv 文件的编码,并且您将能够将生成的文件保存在 xslx 中。