簡體   English   中英

如何使用python將波斯語文本保存在csv文件中?

[英]How to save Farsi text in csv file using python?

我試圖使用以下腳本將我的數據集保存在 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 文件而不會出現錯誤轉換
基本上是通過“從文本中獲取數據”對話框來指定編碼。

要添加到 Cimbali 的答案,另一種添加 UTF8 BOM 的方法是使用編碼“utf-8-sig”而不是“utf-8”,因為它會自動為您處理。

更多信息在這個問題中: Unable to Save Arab Decoded Unicode to CSV File Using Python

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM