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

通過Python讀寫CSV文件的入門教程

 更新時(shí)間:2026年01月26日 09:07:00   作者:Eiceblue  
這篇文章主要介紹了如何使用FreeSpire.XLSforPython庫來處理CSV文件,包括讀取、寫入、以及處理復(fù)雜場景,文章還提供了一些常見問題的解決方案,如中文亂碼處理和大文件讀寫優(yōu)化,需要的朋友可以參考下

在數(shù)據(jù)處理、數(shù)據(jù)分析和自動(dòng)化辦公場景中,CSV(逗號(hào)分隔值)文件是最常用的數(shù)據(jù)交換格式之一。Python 作為數(shù)據(jù)處理的主流語言,原生提供了csv模塊處理CSV文件,但面對(duì)復(fù)雜場景(如大文件、CSV 與 Excel 格式互轉(zhuǎn)、特殊字符處理)時(shí),原生模塊往往需要大量額外封裝。

本文將介紹如何使用 Free Spire.XLS for Python 庫實(shí)現(xiàn) CSV 文件的讀取、寫入操作。開始前先通過 pip 安裝該免費(fèi)庫:

pip install Spire.Xls.Free

相比標(biāo)準(zhǔn)庫 csv,它的核心優(yōu)勢在于:

  1. 更簡潔的 API - 減少代碼復(fù)雜度
  2. 更強(qiáng)兼容性 – 自動(dòng)處理編碼,原生支持中文、特殊字符
  3. 多格式支持 - CSV、Excel、PDF 等格式的互轉(zhuǎn)

1. 通過 Python 讀取CSV文件

1.1 基礎(chǔ)讀?。鹤x取整份CSV文件

以下示例展示如何讀取CSV文件的所有數(shù)據(jù),包括表頭和內(nèi)容,并打印輸出:

from spire.xls import *

def read_csv_file(file_path):
    # 創(chuàng)建Workbook對(duì)象
    workbook = Workbook()
    # 加載CSV文件
    workbook.LoadFromFile(file_path, ",", 1, 1)
    
    # 獲取第一個(gè)工作表(CSV文件加載后默認(rèn)生成一個(gè)工作表)
    worksheet = workbook.Worksheets[0]
    
    # 獲取工作表的行數(shù)和列數(shù)
    row_count = worksheet.LastRow
    col_count = worksheet.LastColumn
    
    # 遍歷所有單元格并打印數(shù)據(jù)
    print("CSV文件內(nèi)容:")
    for row in range(1, row_count + 1):
        row_data = []
        for col in range(1, col_count + 1):
            cell_value = worksheet.Range[row, col].Text
            row_data.append(cell_value)
        print("\t".join(row_data))
    
    # 釋放資源
    workbook.Dispose()

# 調(diào)用函數(shù)讀取CSV文件
if __name__ == "__main__":
    csv_file_path = "sales_data.csv"  # 替換為你的CSV文件路徑
    read_csv_file(csv_file_path)

讀取結(jié)果:

1.2 進(jìn)階讀?。喊礂l件篩選數(shù)據(jù)

實(shí)際場景中常需篩選特定行/列數(shù)據(jù),例如讀取“銷售額>1000”的行:

from spire.xls import *

def read_csv_with_filter(file_path):
    workbook = Workbook()
    workbook.LoadFromFile(file_path, ",", 1, 1)
    worksheet = workbook.Worksheets[0]
    
    row_count = worksheet.LastRow
    col_count = worksheet.LastColumn
    
    # 假設(shè)第3列是銷售額(數(shù)值型),篩選銷售額>1000的行
    print("銷售額>1000的記錄:")
    # 跳過表頭(第一行)
    for row in range(2, row_count + 1):
        # 獲取銷售額單元格的值并轉(zhuǎn)換為浮點(diǎn)數(shù)
        sales_value = float(worksheet.Range[row, 3].Text)
        if sales_value > 1000:
            row_data = []
            for col in range(1, col_count + 1):
                row_data.append(worksheet.Range[row, col].Text)
            print("\t".join(row_data))
    
    workbook.Dispose()

if __name__ == "__main__":
    read_csv_with_filter("sales_data.csv")

按條件讀取結(jié)果:

2. 通過 Python 寫入 CSV 文件

2.1 基礎(chǔ)寫入:創(chuàng)建并寫入 CSV 文件

以下示例展示如何創(chuàng)建新的 CSV 文件,并寫入表頭和多行數(shù)據(jù):

from spire.xls import *

def write_csv_file(file_path):
    # 創(chuàng)建Workbook對(duì)象
    workbook = Workbook()
    # 移除默認(rèn)的工作表,創(chuàng)建新工作表
    workbook.Worksheets.Clear()
    worksheet = workbook.Worksheets.Add("CSV_Data")
    
    # 定義表頭和數(shù)據(jù)
    header = ["姓名", "部門", "薪資", "入職時(shí)間"]
    data = [
        ["張三", "銷售部", "15000", "2023-01-10"],
        ["李四", "技術(shù)部", "12000", "2023-03-15"],
        ["王五", "市場部", "8000", "2022-11-20"]
    ]
    
    # 寫入表頭
    for col in range(len(header)):
        worksheet.Range[1, col + 1].Text = header[col]
    
    # 寫入數(shù)據(jù)
    for row in range(len(data)):
        for col in range(len(data[row])):
            worksheet.Range[row + 2, col + 1].Text = data[row][col]
    
    # 保存為CSV文件(指定編碼為UTF-8,避免中文亂碼)
    worksheet.SaveToFile(file_path, ",", Encoding.get_UTF8())
    
    # 釋放資源
    workbook.Dispose()
    print(f"CSV文件已成功寫入:{file_path}")

if __name__ == "__main__":
    write_csv_file("employee_data.csv")

生成的 CSV 文件:

2.2 進(jìn)階寫入:追加數(shù)據(jù)到已有 CSV 文件

若需在已有 CSV 文件末尾追加數(shù)據(jù),可先讀取原有數(shù)據(jù),再寫入新數(shù)據(jù):

from spire.xls import *

def append_to_csv(file_path, new_data):
    # 加載已有CSV文件
    workbook = Workbook()
    workbook.LoadFromFile(file_path, ",", 1, 1)
    worksheet = workbook.Worksheets[0]
    
    # 獲取已有數(shù)據(jù)的最后一行
    last_row = worksheet.LastRow
    
    # 追加新數(shù)據(jù)
    for row in range(len(new_data)):
        for col in range(len(new_data[row])):
            worksheet.Range[last_row + row + 1, col + 1].Text = new_data[row][col]
    
    # 保存到新CSV文件
    worksheet.SaveToFile("new_employee_data.csv", ",", Encoding.get_UTF8())
    workbook.Dispose()

if __name__ == "__main__":
    # 要追加的新數(shù)據(jù)
    new_data = [
        ["趙六", "財(cái)務(wù)部", "9000", "2023-05-01"],
        ["孫七", "行政部", "7500", "2023-02-28"]
    ]
    append_to_csv("employee_data.csv", new_data)

數(shù)據(jù)追加結(jié)果:

3. 常見問題與解決方案

  • 中文亂碼問題:保存時(shí)指定Encoding.get_UTF8(),避免默認(rèn)編碼導(dǎo)致的亂碼;
  • 大文件讀寫卡頓:可使用worksheet.ExportDataTable()將數(shù)據(jù)轉(zhuǎn)為DataTable,分片處理;
  • CSV分隔符非逗號(hào):加載/保存時(shí)指定分隔符(如制表符\t、分號(hào);),示例:workbook.LoadFromFile(file_path, ";", 1, 1)。

4. 總結(jié)

Free Spire.XLS for Python 是處理 CSV 文件的高效工具:

  1. 讀取 CSV 的核心步驟是:創(chuàng)建 Workbook → 加載文件 → 遍歷工作表單元格;
  2. 寫入/追加 CSV 的核心步驟是:創(chuàng)建/加載工作表 → 寫入數(shù)據(jù) → 指定編碼保存為 CSV 格式

通過本文的示例,你可以快速掌握基于 Python 的 CSV 文件讀取與寫入技巧,滿足日常數(shù)據(jù)處理、自動(dòng)化辦公等場景的需求。相比原生模塊,該庫的面向?qū)ο驛PI更易維護(hù),且能無縫對(duì)接 Excel 格式,是 Python 數(shù)據(jù)處理的優(yōu)質(zhì)選擇。

以上就是通過Python讀寫CSV文件的入門教程的詳細(xì)內(nèi)容,更多關(guān)于Python讀寫CSV文件的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Django框架驗(yàn)證碼用法實(shí)例分析

    Django框架驗(yàn)證碼用法實(shí)例分析

    這篇文章主要介紹了Django框架驗(yàn)證碼用法,結(jié)合實(shí)例形式分析了Python Django框架驗(yàn)證碼的功能、實(shí)現(xiàn)方法及相關(guān)操作技巧,需要的朋友可以參考下
    2019-05-05
  • Python隨機(jī)生成迷宮游戲的代碼示例

    Python隨機(jī)生成迷宮游戲的代碼示例

    本文主要介紹了Python隨機(jī)生成迷宮游戲的代碼示例,Python可以通過生成二維數(shù)組模擬迷宮的結(jié)構(gòu),使用深度優(yōu)先搜索和廣度優(yōu)先搜索等算法找到通路,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • python的socket編程入門

    python的socket編程入門

    本篇文章是一篇關(guān)于python的socket編程入門教程,如果你也正好需要這方面的內(nèi)容,學(xué)習(xí)下吧。
    2018-01-01
  • Python列表推導(dǎo)式的使用方法

    Python列表推導(dǎo)式的使用方法

    這篇文章主要介紹了Python列表推導(dǎo)式的使用方法,大家參考使用吧
    2013-11-11
  • 使用python裝飾器驗(yàn)證配置文件示例

    使用python裝飾器驗(yàn)證配置文件示例

    項(xiàng)目中用到了一個(gè)WriteData的函數(shù)保存用戶填寫的配置,為了實(shí)現(xiàn)驗(yàn)證用戶輸入的需求,在不影響接口的使用的前提下,采用了python的裝飾器實(shí)現(xiàn),代碼片段演示了如何驗(yàn)證WriteData函數(shù)的輸入?yún)?shù)
    2014-02-02
  • Python?Matplotlib中使用plt.savefig存儲(chǔ)圖片的方法舉例

    Python?Matplotlib中使用plt.savefig存儲(chǔ)圖片的方法舉例

    pytorch下保存圖像有很多種方法,但是這些基本上都是基于圖像處理的,將圖像的像素指定一定的維度,下面這篇文章主要給大家介紹了關(guān)于Python?Matplotlib中使用plt.savefig存儲(chǔ)圖片的相關(guān)資料,需要的朋友可以參考下
    2023-02-02
  • 模型訓(xùn)練時(shí)GPU利用率太低的原因及解決

    模型訓(xùn)練時(shí)GPU利用率太低的原因及解決

    這篇文章主要介紹了模型訓(xùn)練時(shí)GPU利用率太低的原因及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • 詳解Python中 sys.argv[]的用法簡明解釋

    詳解Python中 sys.argv[]的用法簡明解釋

    本篇文章主要介紹了詳解Python中 sys.argv[]的用法簡明解釋,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-12-12
  • 一個(gè)不可思議的Python庫vnpy示例詳解

    一個(gè)不可思議的Python庫vnpy示例詳解

    這篇文章主要給大家介紹了關(guān)于Python庫vnpy的相關(guān)資料,vn.py是一個(gè)開源的Python交易編程框架,支持多種金融產(chǎn)品的交易,提供全流程支持,它具有模塊化設(shè)計(jì)、多語言支持、跨平臺(tái)、高性能、易用性、社區(qū)支持和文檔齊全等特性,需要的朋友可以參考下
    2024-11-11
  • NetWorkX使用方法及nx.draw()相關(guān)參數(shù)解讀

    NetWorkX使用方法及nx.draw()相關(guān)參數(shù)解讀

    這篇文章主要介紹了NetWorkX使用方法及nx.draw()相關(guān)參數(shù)解讀,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-12-12

最新評(píng)論

永靖县| 贺兰县| 仙桃市| 方山县| 纳雍县| 临沂市| 通江县| 恩平市| 云龙县| 孟村| 新兴县| 澄城县| 阿拉善左旗| 新津县| 麻江县| 萨迦县| 泾川县| 台安县| 南郑县| 西宁市| 伊吾县| 土默特右旗| 社旗县| 饶河县| 山阴县| 鄂温| 武城县| 郸城县| 自贡市| 分宜县| 科尔| 抚州市| 平阳县| 逊克县| 西乡县| 平谷区| 诸城市| 论坛| 沐川县| 昭苏县| 呼和浩特市|