python匯出寫入csv檔案中文亂碼 親測

2021-09-28 10:50:31 字數 756 閱讀 1639

最近處理mongodb中的資料。

要將mongo中的資料匯入到csv檔案中。正常寫入csv檔案後。在pycharm中檢視中文正常顯示。

但用office開啟csv後,中文卻顯示亂碼。

以下方法親測有效:

with codecs.open('test.csv', 'w',

'utf_8_sig'

) as csvfile

將 utf-8 改為

utf_8_sig

對於亂碼的成因猜測:

utf-8分為兩種:

一種是不帶bom的,不帶bom的是標準形式。

一種是帶bom的,帶bom的主要是微軟的習慣。

微軟在utf-8中使用bom(byte order mark)是因為這樣可以將utf-8和ascii等編碼明確區分開。windows對於utf-8格式的檔案儲存預設是帶有bom的格式。

在pycharm中能夠正常輸出中文,但是匯出到檔案後使用excel開啟是出現中文亂碼可能是因為excel能夠識別gb2312、gbk、gb18030或utf_8 with bom 編碼的中文,如果是utf_8 no bom編碼的中文檔案,excel開啟會亂碼。

關於utf-8與utf_8_sig的區別:

utf-8以位元組為編碼單元,它的位元組順序在所有系統中都是一様的,沒有位元組序的問題,因此它實際上並不需要bom(「byteorder mark」)。但是utf-8 with bom即utf-8-sig需要提供bom("byteorder mark")。

python使用csv寫入csv檔案

沒什麼好說的,直接上 吧 with open file.csv w encoding utf 8 newline as csvfile writer csv.writer csvfile 首先是表頭 writer.writerow id name gender birthday rating 然後是...

python讀取 寫入csv檔案

總是記不住怎麼讀取csv檔案,每次都是上網查,寫個部落格記錄下來看看會不會記得更清楚。個人比較喜歡用pandas的read csv函式來讀取csv檔案 import pandas as pd train data pd.read csv data train.csv 讀取後的資料是dataframe...

python寫入檔案到CSV

編碼問題!使用csv模組時,寫入中文在python中是預設unicode編碼,寫入時csv會出錯,寫不進去資料。import csv with open review.csv ab as f fieldnames comment user time writer csv.dictwriter f,f...