python讀取excel的內容

2021-07-05 08:15:04 字數 1618 閱讀 8257

這次看到別人用別的語言抓取excel中的內容,自己也試了一下,昨晚確實遇到了不少問題,首先就是很糟糕,讓人很奔潰的編碼問題,這也是python中的乙個難點吧,目前有很多的編碼方式,gbk,utf-8,gb2322,在python中提到unicode,一般指的是unicode物件,例如'哈哈'的unicode物件為u'\u54c8\u54c8'而str,是乙個位元組陣列,這個位元組陣列表示的是對unicode物件編碼(可以是utf-8、gbk、cp936、gb2312)後的儲存的格式。這裡它僅僅是乙個位元組流,沒有其它的含義,如果你想使這個位元組流顯示的內容有意義,就必須用正確的編碼格式,

對於unicode物件哈哈進行編碼,編碼成乙個utf-8編碼的str-s_utf8,s_utf8就是是乙個位元組陣列,存放的就是'\xe5\x93\x88\xe5\x93\x88',但是這僅僅是乙個位元組陣列,如果你想將它通過print語句輸出成哈哈,那你就失望了,為什麼呢?

因為print語句它的實現是將要輸出的內容傳送了作業系統,作業系統會根據系統的編碼對輸入的位元組流進行編碼,這就解釋了為什麼utf-8格式的字串「哈哈」,輸出的是「鍝堝搱」,因為 '\xe5\x93\x88\xe5\x93\x88'用gb2312去解釋,其顯示的出來就是「鍝堝搱」。這裡再強調一下,str記錄的是位元組陣列,只是某種編碼的儲存格式,至於輸出到檔案或是列印出來是什麼格式,完全取決於其解碼的編碼將它解碼成什麼樣子。

這裡再對print進行一點補充說明:當將乙個unicode物件傳給print時,在內部會將該unicode物件進行一次轉換,轉換成本地的預設編碼

import sys

reload(sys)

sys.setdefaultencoding('gbk')

在python中str和unicode在編碼和解碼過程中,如果將乙個str直接編碼成另一種編碼,會先把str解碼成unicode,採用的編碼為預設編碼,一般預設編碼是anscii,所以在

上面示例**中第一次轉換的時候會出錯,當設定當前預設編碼為'gbk'後,就不會出錯了。至於reload(sys)是因為python2.5 初始化後會刪除 sys.setdefaultencoding 這個方法,我們需要重新載入。

python讀取excel檔案

一 安裝xlrd模組 二 使用介紹 1 匯入模組 import xlrd 2 開啟excel檔案讀取資料 data xlrd.open workbook excelfile.xls 3 使用技巧 獲取乙個工作表 table data.sheets 0 通過索引順序獲取 table data.shee...

python讀取Excel例項

1 安裝python官方excel庫 xlrd 2 獲取excel檔案位置並讀取 3 讀取sheet 4 讀取指定rows和cols內容 coding utf 8 import xlrd from datetime import date,datetime def read excel 檔案位置 e...

python讀取excel檔案

coding utf 8 import xlrd 路徑前加 r,讀取的檔案路徑 file path r f test.xlsx 檔案路徑的中文轉碼 file path file path.decode utf 8 獲取資料 data xlrd.open workbook file path 獲取sh...