python - 如何使用 python 将波斯语文本保存在 csv 文件中?
问题描述
我试图使用以下脚本将我的数据集保存在 CSV 文件中:
with open(data_path+'Furough.csv', 'w',encoding="utf-8") as f0:
df = pd.DataFrame(columns=['title','poem','year'])
for f in onlyfiles:
poem=[]
title=""
year=0
with open(mypath+f,"r",encoding="utf-8") as f1:
for line in f1:
if line.__contains__("TIMESTAMP"):
year=int(line[12:15])
continue
if line.__contains__('TITLE'):
title=line[7:]
if line!="":
poem.append(line)
df = df.append({
'title': title,
'poem':poem,
'year': int(float(year))
}, ignore_index=True)
df.to_csv(f0, index=False,encoding='utf-8-sig')
但结果令人困惑,将一些未知字符写入 CSV 文件而不是波斯语字符:谁能帮助我?
我想将所有这些文件写成 CSV: 我在其中一个文件中想要写的示例:
[V_START] بر پردههای درهم امیال سرکشم [HEM]
نقش عجیب چهرۀ یک ناشناس بود [V_END]
[V_START] نقشی ز چهرهای که چو میجستمش به شوق [HEM]
پیوسته میرمید و بمن رخ نمینمود [V_END]
[V_START] یک شب نگاه خستۀ مردی به روی من [HEM]
لغزید و سست گشت و همان جا خموش ماند [V_END]
[V_START] تا خواستم که بگسلم این رشتۀ نگاه [HEM]
قلبم تپید و باز مرا سوی او کشاند [V_END]
但结果:
解决方案
您的文件很可能是正确的,而 excel 正在使用另一种编码打开它。
也许插入 utf-8 BOM 可能会强制 excel 正确地将 csv 识别为 utf-8:
import codecs
with open(data_path+'Furough.csv', 'w',encoding="utf-8") as f0:
f0.write(codecs.BOM_UTF8)
# rest of your code
否则请参阅此微软帮助页面,了解如何在 Excel 中打开 UTF-8 CSV 文件而不发生错误转换?
基本上通过“从文本获取数据”对话框来指定编码。
推荐阅读
- android - 为 Fused Location 提供程序 onLocationChanged 设置计时器
- python-3.x - 如何获得离集群中心最近的N个数据点?
- sql-server - 查询本地日期和相对日期时间的数据类型
- html - 如何对齐下拉列表中两个单词之间的缩进空间?
- javascript - 量角器:随机测试失败
- java - 如何在java中对具有多个日期的地图进行排序作为值
- javascript - 在 Ajax 结果后多次打印 div
- amazon-web-services - 了解 IAM 政策
- c++ - 如何在c ++中删除类并将其设置为null
- c# - 从 asp.net MVC 中的复选框值中获取 0