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

Python結(jié)合Free Spire.XLS庫(kù)實(shí)現(xiàn)TXT到CSV的高效轉(zhuǎn)換

 更新時(shí)間:2025年12月21日 14:20:05   作者:Eiceblue  
在數(shù)據(jù)處理、數(shù)據(jù)分析或報(bào)表生成場(chǎng)景中,TXT文本文件因格式靈活被廣泛使用,但CSV格式憑借結(jié)構(gòu)化、易被Excel/Pandas/數(shù)據(jù)庫(kù)解析的優(yōu)勢(shì),成為數(shù)據(jù)交互的主流選擇,本文將分享如何用Python結(jié)合Free Spire.XLS庫(kù)實(shí)現(xiàn)TXT到CSV的高效轉(zhuǎn)換,需要的朋友可以參考下

引言

在數(shù)據(jù)處理、數(shù)據(jù)分析或報(bào)表生成場(chǎng)景中,TXT 文本文件因格式靈活被廣泛使用,但 CSV 格式憑借結(jié)構(gòu)化、易被 Excel/Pandas/數(shù)據(jù)庫(kù)解析的優(yōu)勢(shì),成為數(shù)據(jù)交互的主流選擇。本文將分享如何用 Python 結(jié)合 Free Spire.XLS 庫(kù)實(shí)現(xiàn) TXT 到 CSV 的高效轉(zhuǎn)換,覆蓋基礎(chǔ)轉(zhuǎn)換、自定義分隔符、亂碼解決等核心場(chǎng)景,零基礎(chǔ)也能快速上手。

一、環(huán)境準(zhǔn)備:安裝免費(fèi) Python 庫(kù)

Free Spire.XLS for Python是一款免費(fèi)的Excel/CSV處理庫(kù),無(wú)需安裝Microsoft Excel即可實(shí)現(xiàn)文件格式轉(zhuǎn)換、數(shù)據(jù)讀寫等操作,但有一定篇幅限制。

1.1 pip 安裝命令

通過pip快速安裝,兼容Python 3.6及以上版本:

pip install Spire.Xls.Free

1.2 安裝常見問題解決

若安裝失敗,可嘗試以下方案:

  • 升級(jí)pip:python -m pip install --upgrade pip;
  • 手動(dòng)下載 whl 文件安裝(官網(wǎng)地址)。

二、基礎(chǔ)實(shí)現(xiàn):TXT 轉(zhuǎn) CSV(逗號(hào)分隔)

2.1 場(chǎng)景說明

假設(shè)待轉(zhuǎn)換的 data.txt 文件內(nèi)容如下(逗號(hào)分隔):

姓名,年齡,城市,職業(yè)
張三,25,北京,程序員
李四,30,上海,產(chǎn)品經(jīng)理
王五,28,廣州,設(shè)計(jì)師

2.2 Python 代碼實(shí)現(xiàn)

from spire.xls import *
from spire.xls.common import *

def txt_to_csv_basic(txt_path, csv_path):
    # 1. 創(chuàng)建Workbook對(duì)象
    workbook = Workbook()
    # 2. 獲取第一張工作表
    worksheet = workbook.Worksheets[0]
    
    # 3. 讀取TXT文件內(nèi)容
    with open(txt_path, 'r', encoding='utf-8') as f:
        lines = f.readlines()
    
    # 4. 將TXT內(nèi)容寫入工作表
    row_index = 1  # Spire.XLS行索引從1開始
    for line in lines:
        # 去除換行符并按逗號(hào)分割
        row_data = line.strip().split(',')
        col_index = 1
        for cell_value in row_data:
            # 寫入單元格
            worksheet.Range[row_index, col_index].Text = cell_value
            col_index += 1
        row_index += 1
    
    # 5. 保存為CSV文件
    workbook.SaveToFile(csv_path, FileFormat.CSV)
    workbook.Dispose()
    print(f"基礎(chǔ)轉(zhuǎn)換完成!CSV文件已保存至:{csv_path}")

# 調(diào)用函數(shù)
if __name__ == "__main__":
    txt_file = "data.txt"
    csv_file = "output_basic.csv"
    txt_to_csv_basic(txt_file, csv_file)

轉(zhuǎn)換后的 CSV 文件:

2.3 代碼解析

  • Workbook():創(chuàng)建 Excel 工作簿對(duì)象,是 Free Spire.XLS 的核心入口;
  • Worksheets[]:獲取指定工作表用于存儲(chǔ) TXT 數(shù)據(jù);
  • 讀取 TXT 后按行分割,逐單元格寫入工作表;
  • SaveToFile():指定 FileFormat.CSV 即可將工作表導(dǎo)出為 CSV 格式。

三、進(jìn)階場(chǎng)景:自定義分隔符/亂碼處理

場(chǎng)景1:TXT 文件為制表符(\t)分隔

data_tab.txt 內(nèi)容為制表符分隔:

姓名	年齡	城市	職業(yè)
張三	25	北京	程序員
李四	30	上海	產(chǎn)品經(jīng)理

只需修改分割符為 \t,代碼如下:

from spire.xls import *
from spire.xls.common import *

def txt_to_csv_tab_separator(txt_path, csv_path):
    workbook = Workbook()
    worksheet = workbook.Worksheets[0]
    
    with open(txt_path, 'r', encoding='utf-8') as f:
        lines = f.readlines()
    
    row_index = 1
    for line in lines:
        row_data = line.strip().split('\t')  # 按制表符分割
        col_index = 1
        for cell_value in row_data:
            worksheet.Range[row_index, col_index].Text = cell_value
            col_index += 1
        row_index += 1
    
    workbook.SaveToFile(csv_path, FileFormat.CSV)
    workbook.Dispose()
    print(f"制表符分隔轉(zhuǎn)換完成!文件路徑:{csv_path}")

# 調(diào)用
txt_to_csv_tab_separator("data_tab.txt", "output_tab.csv")

場(chǎng)景2:解決 TXT 轉(zhuǎn) CSV 亂碼問題

若 TXT 文件編碼為 GBK/GB2312,讀取時(shí)指定對(duì)應(yīng)編碼即可:

# 僅修改讀取TXT的編碼參數(shù)
with open(txt_path, 'r', encoding='gbk') as f:  # 替換為gb2312/utf-8-sig(含BOM)
    lines = f.readlines()

四、常見問題與解決方案

問題現(xiàn)象原因分析解決方案
CSV 文件打開后數(shù)據(jù)錯(cuò)位TXT 分隔符不統(tǒng)一統(tǒng)一分隔符(如替換所有空格為逗號(hào))
轉(zhuǎn)換后中文顯示為亂碼編碼不匹配讀取 TXT 時(shí)指定正確編碼(UTF-8/GBK/GB2312)
大文件轉(zhuǎn)換卡頓/崩潰一次性讀取全部?jī)?nèi)容采用分批讀取+寫入的方式
FreeSpire 模塊導(dǎo)入失敗安裝不完整重新安裝或手動(dòng)下載 whl 文件

五、擴(kuò)展應(yīng)用:批量轉(zhuǎn)換多個(gè) TXT 文件

若需批量轉(zhuǎn)換文件夾下所有 TXT 文件為 CSV,可結(jié)合 os 模塊實(shí)現(xiàn):

import os

def batch_txt_to_csv(txt_folder, csv_folder):
    # 創(chuàng)建CSV文件夾(若不存在)
    if not os.path.exists(csv_folder):
        os.makedirs(csv_folder)
    
    # 遍歷TXT文件夾
    for file_name in os.listdir(txt_folder):
        if file_name.endswith(".txt"):
            txt_path = os.path.join(txt_folder, file_name)
            # 生成CSV文件名(替換后綴)
            csv_name = file_name.replace(".txt", ".csv")
            csv_path = os.path.join(csv_folder, csv_name)
            # 調(diào)用基礎(chǔ)轉(zhuǎn)換函數(shù)
            txt_to_csv_basic(txt_path, csv_path)
    
    print(f"批量轉(zhuǎn)換完成!所有CSV文件已保存至:{csv_folder}")

# 調(diào)用(轉(zhuǎn)換txt_files文件夾下所有TXT,保存到csv_files文件夾)
batch_txt_to_csv("txt_files", "csv_files")

本文基于 Free Spire.XLS for Python 免費(fèi)庫(kù)實(shí)現(xiàn)了 TXT 到 CSV 的全場(chǎng)景轉(zhuǎn)換,包括基礎(chǔ)轉(zhuǎn)換、自定義分隔符、亂碼解決及批量轉(zhuǎn)換,相比傳統(tǒng)方法更簡(jiǎn)潔、穩(wěn)定。Free Spire.XLS for Python 不僅支持 TXT 轉(zhuǎn) CSV,還可實(shí)現(xiàn) CSV 轉(zhuǎn) Excel、Excel 轉(zhuǎn) TXT 等格式互轉(zhuǎn),滿足數(shù)據(jù)處理的多樣化需求。

以上就是Python結(jié)合Free Spire.XLS庫(kù)實(shí)現(xiàn)TXT到CSV的高效轉(zhuǎn)換的詳細(xì)內(nèi)容,更多關(guān)于Python TXT轉(zhuǎn)為CSV格式的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • YOLOv5改進(jìn)系列之增加小目標(biāo)檢測(cè)層

    YOLOv5改進(jìn)系列之增加小目標(biāo)檢測(cè)層

    yolov5出來(lái)已經(jīng)很長(zhǎng)時(shí)間了,所以有關(guān)yolov5的一些詳細(xì)介紹在這里就不一一介紹了,下面這篇文章主要給大家介紹了關(guān)于YOLOv5改進(jìn)系列之增加小目標(biāo)檢測(cè)層的相關(guān)資料,需要的朋友可以參考下
    2022-09-09
  • flask中獲取各種請(qǐng)求數(shù)據(jù)的常見方法小結(jié)

    flask中獲取各種請(qǐng)求數(shù)據(jù)的常見方法小結(jié)

    在 Flask 里,能使用多種方法獲取不同類型的請(qǐng)求數(shù)據(jù),這篇文章為大家詳細(xì)介紹了Flask中常見請(qǐng)求數(shù)據(jù)的獲取方式,有需要的小伙伴可以參考一下
    2025-06-06
  • Python?matplotlib繪制散點(diǎn)圖配置(萬(wàn)能模板案例)

    Python?matplotlib繪制散點(diǎn)圖配置(萬(wàn)能模板案例)

    這篇文章主要介紹了Python?matplotlib繪制散點(diǎn)圖配置(萬(wàn)能模板案例),散點(diǎn)圖是指在??回歸分析???中,數(shù)據(jù)點(diǎn)在直角坐標(biāo)系平面上的?分布圖???,散點(diǎn)圖表示因變量隨??自變量???而?變化???的大致趨勢(shì),據(jù)此可以選擇合適的函數(shù)??對(duì)數(shù)???據(jù)點(diǎn)進(jìn)行?擬合
    2022-07-07
  • GDAL 矢量屬性數(shù)據(jù)修改方式(python)

    GDAL 矢量屬性數(shù)據(jù)修改方式(python)

    這篇文章主要介紹了GDAL 矢量屬性數(shù)據(jù)修改方式(python),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧
    2020-03-03
  • Python基于pyopencv人臉識(shí)別并繪制GUI界面

    Python基于pyopencv人臉識(shí)別并繪制GUI界面

    本文詳細(xì)講解了Python基于pyopencv人臉識(shí)別并繪制GUI界面,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-12-12
  • python實(shí)現(xiàn)數(shù)據(jù)分析與建模

    python實(shí)現(xiàn)數(shù)據(jù)分析與建模

    這篇文章主要介紹了python實(shí)現(xiàn)數(shù)據(jù)分析與建模功能,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-07-07
  • 使用Python實(shí)現(xiàn)照片按照日期自動(dòng)分類的操作指南

    使用Python實(shí)現(xiàn)照片按照日期自動(dòng)分類的操作指南

    最近準(zhǔn)備把近幾年手機(jī)里面存儲(chǔ)的照片按年份分類存儲(chǔ)到硬盤里面,不知不覺累積了4000多張照片,人工一張張分類實(shí)在是太費(fèi)時(shí)間、也容易出錯(cuò),所以本文給大家介紹了使用Python實(shí)現(xiàn)照片按照日期自動(dòng)分類的操作指南,需要的朋友可以參考下
    2025-08-08
  • Python讀取Nacos配置時(shí)設(shè)置命名空間的方法步驟

    Python讀取Nacos配置時(shí)設(shè)置命名空間的方法步驟

    這篇文章主要介紹了Nacos配置管理的命名空間原理、Python端配置步驟、最佳實(shí)踐以及常見問題解決方案,強(qiáng)調(diào)通過合理命名空間與動(dòng)態(tài)配置機(jī)制,實(shí)現(xiàn)多環(huán)境隔離和高效運(yùn)維管理,需要的朋友可以參考下
    2025-10-10
  • python使用writerows寫csv文件產(chǎn)生多余空行的處理方法

    python使用writerows寫csv文件產(chǎn)生多余空行的處理方法

    這篇文章主要介紹了python使用writerows寫csv文件產(chǎn)生多余空行的處理方法,需要的朋友可以參考下
    2019-08-08
  • python wordcloud庫(kù)實(shí)例講解使用方法

    python wordcloud庫(kù)實(shí)例講解使用方法

    這篇文章主要介紹了python wordcloud庫(kù)實(shí)例,詞云通過以詞語(yǔ)為基本單位,更加直觀和藝術(shù)地展示文本。wordcloud是優(yōu)秀的詞云展示的python第三方庫(kù)
    2022-12-12

最新評(píng)論

会理县| 文昌市| 荥阳市| 罗源县| 合川市| 民权县| 曲水县| 山东省| 垫江县| 河南省| 吉木萨尔县| 平顺县| 富锦市| 苍山县| 永德县| 乌兰县| 龙陵县| 闽侯县| 紫阳县| 抚州市| 渑池县| 本溪| 新乡市| 南平市| 布拖县| 淄博市| 乐至县| 泸水县| 达日县| 鄂托克旗| 濮阳市| 贵溪市| 星子县| 奉化市| 牙克石市| 会理县| 镇江市| 新巴尔虎右旗| 小金县| 馆陶县| 山丹县|