python生成csv文件亂碼,csv文件下載亂碼

本文目錄一覽:

python寫文件中文亂碼

這是因為IDLE中使用gbk編碼,是ascii擴展字符集。

import sys

sys.getdefaultencoding()

‘ascii’解決方法:

在IDLE中執行的時候

去掉字符串前面的u字符,也不要加#coding這一行。

2. 先import sys,然後reload(sys),再使用sys.setdefaultencoding(“utf-8”)。然後就可以打印前面帶u的字符串了。(這是搜來的方法,實驗了一下,發現在我這沒有輸出了。。重啟了IDLE,才可以輸出,不過又變會ascii了)

在文件中執行

在文件開頭聲明#coding行,文件保存為utf8編碼,在字符串開頭加u

csv 文件中,打開發現漢字顯示為亂碼,如何解決

CSV是一種表格文件,但是它的編碼方式默認是ANSI,所以有些舊版本的EXCEL打開時中文就會顯示亂碼。

工具:office excel

步驟

準備一個有亂碼的CSV文件用於演示。

右鍵此CSV文件,選擇“用記事本打開”。

點擊“文件”–“另存為”。

發現默認編碼是“UTF-8”,所以一些Excel表格軟件就會顯示亂碼。對於這樣,只要改成ANSI就行了,按確定。

用Excel表格軟件再打開,就不會顯示亂碼了。

pandas read_csv編碼問題

一早上就連遇兩個中文編碼問題報錯,果然在python里中文編碼就是踩不完的坑。

UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0xca in position 8: invalid continuation byte

csv文件當中的中文編碼問題,打開時加入encoding=‘gb2312’即可解決。

pd.read_csv(‘a.csv’,encoding=’gb2312′)

pandas.errors.ParserError: Error tokenizing data. C error: Expected 4 fields in line 225, saw 6

因為csv文件默認分隔符是逗號分隔符,此時若文件中儲存的信息也含有逗號時,解析器會把儲存信息里的逗號也當成分隔符,就會導致列數不一致,read_csv打開報錯。特別是在中文裡又經常使用逗號,稍不注意就會出錯。

解決辦法是在寫入csv文件的時候使用其他分隔符,“|”,“\t”等。記得打開時也要加入分隔符說明delimiter = ‘\t’

pd.read_csv(‘a.csv’,delimiter=’\t’)

如果csv文件不是自己寫的,就手動把逗號刪掉再打開吧。

python解決csv文件用excel打開亂碼問題

【問題】

python輸出的csv文件用excel打開,裡面的中文會變成亂碼,但用window下的記事本或mac下的numbers打開就正常顯示。

原因是python輸出的文件是utf-8編碼寫入的,excel默認以gbk方式讀取,導致亂碼發生。

【解決方法1】文件產出時encoding設置為utf-8-sig    

用excel打開csv時,excel會先檢查文件的第一個字符,來了解這個文件是什麼編碼方式,如果這個字符是BOM,excel就知道用utf-8的方式打開這個文件。python自帶了處理BOM的編碼方式uft-8-sig,因此只需要在文件產出時將encoding設置為utf-8-sig。

如果文件不是由python產出的,只需要以utf-8方式讀入再以utf-8-sig方式存儲即可

【解決方法2】懶人法,適用只含簡體中文的文件

用記事本打開,點擊另存為,右下角編碼方式選擇“ANSI”,這個過程是把這個文件改成gbk編碼格式,excel就是默認用gbk方式打開的。

參考: Python寫的csv文件,如何讓 Excel 雙擊打開不亂碼? – 雲+社區 – 騰訊雲

對編碼格式一竅不通的可以閱讀以下網頁

python筆記——二進制和文件編碼_砍柴姑娘Jourosy的博客-CSDN博客

編碼方式之ASCII、ANSI、Unicode概述 – 藍海人 – 博客園

【簡單總結】:

1. 首先需要了解 字符集 和 字符編碼 兩個概念,字符集定義了字符和二進制的一一對應關係,字符編碼規定了如何將字符的編號存儲到計算機中。

2. Unicode是字符集,包含了全球文字的唯一編碼,utf-8是編碼方式,將unicode以某種方式存儲到計算機中。

3. 有些字符集和編碼是結合在一起的,稱作字符集還是編碼都無所謂,比如ASCII,GBK

4. ANSI是各個國家地區不同擴展編碼方式的總稱,互不兼容(可以看出來通用性沒有utf好)

5. 不同編碼方式在轉換時,通常需要以unicode作為中間編碼,即先將其他編碼的字符串解碼(decode)成unicode,再從unicode編碼(encode)成另一種編碼。

python讀取csv文件時,數據內容含有中文,讀取出錯,怎麼辦

估計是亂碼造成,需要在讀取的py文件中指定編碼格式:

在文件開頭,設置成gbk格式import

os,sys,re,csv

reload(sys)

sys.setdefaultencoding(‘gbk’)

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/193417.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-01 15:01
下一篇 2024-12-01 15:01

相關推薦

  • 如何查看Anaconda中Python路徑

    對Anaconda中Python路徑即conda環境的查看進行詳細的闡述。 一、使用命令行查看 1、在Windows系統中,可以使用命令提示符(cmd)或者Anaconda Pro…

    編程 2025-04-29
  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • Python計算陽曆日期對應周幾

    本文介紹如何通過Python計算任意陽曆日期對應周幾。 一、獲取日期 獲取日期可以通過Python內置的模塊datetime實現,示例代碼如下: from datetime imp…

    編程 2025-04-29
  • Python列表中負數的個數

    Python列表是一個有序的集合,可以存儲多個不同類型的元素。而負數是指小於0的整數。在Python列表中,我們想要找到負數的個數,可以通過以下幾個方面進行實現。 一、使用循環遍歷…

    編程 2025-04-29
  • Python中引入上一級目錄中函數

    Python中經常需要調用其他文件夾中的模塊或函數,其中一個常見的操作是引入上一級目錄中的函數。在此,我們將從多個角度詳細解釋如何在Python中引入上一級目錄的函數。 一、加入環…

    編程 2025-04-29
  • Python程序需要編譯才能執行

    Python 被廣泛應用於數據分析、人工智能、科學計算等領域,它的靈活性和簡單易學的性質使得越來越多的人喜歡使用 Python 進行編程。然而,在 Python 中程序執行的方式不…

    編程 2025-04-29
  • 蝴蝶優化算法Python版

    蝴蝶優化算法是一種基於仿生學的優化算法,模仿自然界中的蝴蝶進行搜索。它可以應用於多個領域的優化問題,包括數學優化、工程問題、機器學習等。本文將從多個方面對蝴蝶優化算法Python版…

    編程 2025-04-29
  • python強行終止程序快捷鍵

    本文將從多個方面對python強行終止程序快捷鍵進行詳細闡述,並提供相應代碼示例。 一、Ctrl+C快捷鍵 Ctrl+C快捷鍵是在終端中經常用來強行終止運行的程序。當你在終端中運行…

    編程 2025-04-29
  • Python字典去重複工具

    使用Python語言編寫字典去重複工具,可幫助用戶快速去重複。 一、字典去重複工具的需求 在使用Python編寫程序時,我們經常需要處理數據文件,其中包含了大量的重複數據。為了方便…

    編程 2025-04-29
  • Python清華鏡像下載

    Python清華鏡像是一個高質量的Python開發資源鏡像站,提供了Python及其相關的開發工具、框架和文檔的下載服務。本文將從以下幾個方面對Python清華鏡像下載進行詳細的闡…

    編程 2025-04-29

發表回復

登錄後才能評論