最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python新手指南之如何讀寫舊版Excel(.xls)格式文件

 更新時(shí)間:2026年01月07日 08:59:35   作者:小莊-Python辦公  
在數(shù)據(jù)處理的世界里,Excel 是最常見的文件格式之一,本教程將手把手教你如何使用 Python 系統(tǒng)化、專業(yè)地讀寫 .xls 文件,有需要的小伙伴可以了解下

在數(shù)據(jù)處理的世界里,Excel 是最常見的文件格式之一。雖然現(xiàn)在的標(biāo)準(zhǔn)是 .xlsx(基于 XML 的較新格式),但在很多傳統(tǒng)行業(yè)、舊系統(tǒng)導(dǎo)出數(shù)據(jù)或歷史文檔中,我們?nèi)匀粫?huì)頻繁遇到 .xls 格式(Excel 97-2003 工作簿)。

對于 Python 初學(xué)者來說,處理這種“古老”的格式往往會(huì)遇到一些坑(比如現(xiàn)代庫不支持)。本教程將手把手教你如何使用 Python 系統(tǒng)化、專業(yè)地讀寫 .xls 文件。

1. 準(zhǔn)備工作:環(huán)境與依賴庫

在開始寫代碼之前,我們需要理解 Python 處理 Excel 的生態(tài)系統(tǒng)。

  • Pandas: 這是 Python 數(shù)據(jù)分析的神器。我們將主要通過它來操作數(shù)據(jù),因?yàn)樗庋b了底層的復(fù)雜操作,非常適合初學(xué)者。
  • xlrd: 這是一個(gè)專門用于讀取 .xls 文件的引擎。
  • xlwt: 這是一個(gè)專門用于寫入 .xls 文件的引擎。

注意:目前流行的 openpyxl 庫僅支持 .xlsx 格式,不支持 .xls。因此,為了處理舊格式,我們必須安裝 xlrdxlwt。

安裝步驟

打開你的終端(Terminal)或命令提示符(CMD),運(yùn)行以下命令安裝所需的庫:

pip install pandas xlrd xlwt

安裝完成后,我們就可以開始編寫 Python 代碼了。

2. 讀取 .xls 文件

讀取 .xls 文件最簡單、最強(qiáng)大的方法是使用 Pandas 的 read_excel 函數(shù)。

基礎(chǔ)讀取代碼

假設(shè)你有一個(gè)名為 old_data.xls 的文件,內(nèi)容如下:

NameAgeCity
Alice25New York
Bob30London

以下是讀取該文件的代碼:

import pandas as pd

# 1. 定義文件路徑
file_path = 'old_data.xls'

try:
    # 2. 讀取 Excel 文件
    # Pandas 會(huì)自動(dòng)調(diào)用 xlrd 引擎來處理 .xls 文件
    df = pd.read_excel(file_path)

    # 3. 打印前幾行數(shù)據(jù)以檢查
    print("文件讀取成功!前 5 行數(shù)據(jù)如下:")
    print(df.head())

except FileNotFoundError:
    print(f"錯(cuò)誤:找不到文件 {file_path}")
except Exception as e:
    print(f"讀取過程中發(fā)生錯(cuò)誤:{e}")

進(jìn)階讀取技巧

在實(shí)際工作中,Excel 文件往往比較復(fù)雜。以下是一些常用的參數(shù)配置:

  • 指定 Sheet(工作表): 如果文件有多個(gè) Sheet,你可以通過名字或索引指定。
  • 指定表頭: 有時(shí)候第一行不是表頭。
# 讀取名為 "Sheet2" 的工作表,且指定第 2 行(索引為1)作為表頭
df_sheet2 = pd.read_excel(file_path, sheet_name='Sheet2', header=1)

# 如果文件中沒有表頭,設(shè)置 header=None
df_no_header = pd.read_excel(file_path, header=None)

3. 寫入 .xls 文件

將數(shù)據(jù)保存為 .xls 格式,我們需要使用 Pandas 的 to_excel 方法。Pandas 會(huì)在后臺(tái)調(diào)用 xlwt 庫來完成這個(gè)任務(wù)。

基礎(chǔ)寫入代碼

我們將創(chuàng)建一個(gè)簡單的數(shù)據(jù)集,并將其保存為 output.xls

import pandas as pd

# 1. 創(chuàng)建示例數(shù)據(jù)(字典格式)
data = {
    '員工ID': [101, 102, 103],
    '姓名': ['張三', '李四', '王五'],
    '入職年份': [2018, 2020, 2023]
}

# 2. 轉(zhuǎn)換為 DataFrame
df_output = pd.DataFrame(data)

# 3. 定義輸出文件名
output_file = 'report_2024.xls'

try:
    # 4. 寫入文件
    # index=False 表示不把左側(cè)的行索引號(hào)(0, 1, 2...)寫入 Excel
    df_output.to_excel(output_file, index=False)
    
    print(f"成功將數(shù)據(jù)寫入 {output_file}")

except Exception as e:
    print(f"寫入失?。簕e}")

寫入多個(gè) Sheet

如果你需要在一個(gè) .xls 文件中寫入多個(gè)工作表,需要使用 ExcelWriter 對象:

with pd.ExcelWriter('multi_sheet_report.xls', engine='xlwt') as writer:
    df_output.to_excel(writer, sheet_name='員工名單', index=False)
    df_output.to_excel(writer, sheet_name='備份數(shù)據(jù)', index=False)
    
print("多 Sheet 文件寫入完成。")

4. 常見陷阱與解決方案 (Common Pitfalls)

作為初學(xué)者,處理 .xls 時(shí)最容易遇到以下問題:

1. 行數(shù)限制 (The 65,536 Row Limit)

問題: 當(dāng)你試圖寫入超過 65,536 行數(shù)據(jù)到 .xls 文件時(shí),程序會(huì)報(bào)錯(cuò)。

原因: 這是 Excel 97-2003 格式的物理限制。

解決:

  • 首選: 將文件保存為 .xlsx 格式(支持約 100 萬行)。
  • 次選: 如果必須用 .xls,需要將數(shù)據(jù)拆分到多個(gè) Sheet 或多個(gè)文件中。

2. 庫的混淆 (xlrd vs openpyxl)

問題: 報(bào)錯(cuò) xlrd.biffh.XLRDError: Excel xlsx file; not supported.

原因: 你試圖用 xlrd 讀取 .xlsx 文件,或者你的 xlrd 版本過新(2.0+ 版本移除了對 .xlsx 的支持,僅支持 .xls)。

解決:

  • 讀取 .xls: 確保安裝了 xlrd。
  • 讀取 .xlsx: 確保安裝了 openpyxl。

3. 編碼問題

問題: 讀取中文內(nèi)容的 .xls 有時(shí)會(huì)出現(xiàn)亂碼(較少見,但存在)。

解決: 雖然 Pandas 處理得很好,但如果遇到,可以在 read_excel 中嘗試添加 encoding='utf-8'encoding='gbk' 參數(shù)(雖然新版 Pandas 已移除此參數(shù),通常需檢查源文件是否損壞)。

5. 總結(jié)與建議

處理舊版 Excel 文件是數(shù)據(jù)分析師的基本功。以下是本次教程的核心要點(diǎn)回顧:

  • 讀取: 使用 pandas.read_excel('file.xls'),底層依賴 xlrd。
  • 寫入: 使用 df.to_excel('file.xls'),底層依賴 xlwt。
  • 注意: 牢記 .xls 格式有 65536 行的行數(shù)限制。

給初學(xué)者的最終建議:除非工作環(huán)境強(qiáng)制要求使用 .xls,否則在生成新文件時(shí),強(qiáng)烈建議使用現(xiàn)代的 .xlsx 格式。它體積更小、更安全、且支持更多的數(shù)據(jù)量。

到此這篇關(guān)于Python新手指南之如何讀寫舊版Excel(.xls)格式文件的文章就介紹到這了,更多相關(guān)Python讀寫舊版Excel文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python+tkinter實(shí)現(xiàn)網(wǎng)站下載工具

    Python+tkinter實(shí)現(xiàn)網(wǎng)站下載工具

    這篇文章主要為大家詳細(xì)介紹了如何利用Python+tkinter實(shí)現(xiàn)網(wǎng)站下載工具,實(shí)現(xiàn)所有數(shù)據(jù)一鍵獲取,文中的示例代碼講解詳細(xì),感興趣的可以了解一下
    2023-03-03
  • Python 使用SMTP發(fā)送郵件的代碼小結(jié)

    Python 使用SMTP發(fā)送郵件的代碼小結(jié)

    python的smtplib提供了一種很方便的途徑發(fā)送電子郵件。它對smtp協(xié)議進(jìn)行了簡單的封裝,需要的朋友可以參考下
    2016-09-09
  • 如何實(shí)現(xiàn)在Anaconda中打開python自帶idle

    如何實(shí)現(xiàn)在Anaconda中打開python自帶idle

    這篇文章主要介紹了如何實(shí)現(xiàn)在Anaconda中打開python自帶idle問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • Django實(shí)現(xiàn)自定義404,500頁面教程

    Django實(shí)現(xiàn)自定義404,500頁面教程

    這篇文章主要介紹了Django實(shí)現(xiàn)自定義404,500頁面的詳細(xì)方法,非常簡單實(shí)用,有需要的小伙伴可以參考下
    2017-03-03
  • fastcgi文件讀取漏洞之python掃描腳本

    fastcgi文件讀取漏洞之python掃描腳本

    這篇文章主要介紹了fastcgi文件讀取漏洞之python掃描腳本,需要的朋友可以參考下
    2017-04-04
  • 詳解Python中的自定義密碼驗(yàn)證

    詳解Python中的自定義密碼驗(yàn)證

    這篇文章主要為大家介紹了如何實(shí)現(xiàn)在Python中的自定義密碼驗(yàn)證,并對密碼驗(yàn)證功能進(jìn)行單元測試。文中的示例代碼講解詳細(xì),需要的可以參考一下
    2022-02-02
  • django的使用步驟入門教程(很詳細(xì))

    django的使用步驟入門教程(很詳細(xì))

    隨著IT行業(yè)的不斷發(fā)展,編程學(xué)習(xí)也越來越重要,很多人都開啟了很多計(jì)算機(jī)語言的學(xué)習(xí),下面這篇文章主要給大家介紹了關(guān)于django的使用步驟入門教程,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-05-05
  • Pytorch?nn.Unfold()?與?nn.Fold()圖碼詳解(最新推薦)

    Pytorch?nn.Unfold()?與?nn.Fold()圖碼詳解(最新推薦)

    這篇文章主要介紹了Pytorch?nn.Unfold()?與?nn.Fold()圖碼詳解,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-05-05
  • 機(jī)器學(xué)習(xí)之KNN算法原理及Python實(shí)現(xiàn)方法詳解

    機(jī)器學(xué)習(xí)之KNN算法原理及Python實(shí)現(xiàn)方法詳解

    這篇文章主要介紹了機(jī)器學(xué)習(xí)之KNN算法原理及Python實(shí)現(xiàn)方法,結(jié)合實(shí)例形式詳細(xì)分析了機(jī)器學(xué)習(xí)KNN算法原理以及Python相關(guān)實(shí)現(xiàn)步驟、操作技巧與注意事項(xiàng),需要的朋友可以參考下
    2018-07-07
  • Python prettytable模塊應(yīng)用詳解

    Python prettytable模塊應(yīng)用詳解

    PrettyTable 是python中的一個(gè)第三方庫,可用來生成美觀的ASCII格式的表格,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2022-09-09

最新評論

旅游| 文昌市| 农安县| 察雅县| 新疆| 上犹县| 连城县| 洪洞县| 巴彦县| 柳林县| 江川县| 孝感市| 金溪县| 长岭县| 翼城县| 武穴市| 佛教| 卢氏县| 宁夏| 黔东| 习水县| 浮梁县| 赞皇县| 佛山市| 巴楚县| 四川省| 和田市| 阿鲁科尔沁旗| 凤凰县| 南涧| 东至县| 樟树市| 资兴市| 宜章县| 奉节县| 思茅市| 浮山县| 静安区| 双鸭山市| 秦安县| 鸡泽县|