Stories

Detail Return Return

國產化Excel開發組件Spire.XLS教程:使用Python將TXT文件轉換為CSV - Stories Detail

在 Python 中處理數據時,將 TXT 文本文件轉換為 CSV 是數據分析、報表生成或跨應用共享數據的常見需求。TXT 文件通常存儲非結構化的純文本,直接處理較為繁瑣,而 CSV 文件能將數據組織成行和列,更便於分析和處理。在 Python 中處理數據時,將 TXT 文本文件轉換為 CSV 是數據分析、報表生成或跨應用共享數據的常見需求。本文將詳細介紹如何藉助Spire.XLS使用 Python 實現 TXT 文件轉 CSV,包括單文件轉換、批量轉換以及處理不同分隔符的技巧。

Spire.XLS for Python試用下載,請聯繫慧都科技

歡迎加入Spire技術交流Q羣(125237868),與更多小夥伴一起提升文檔開發技能~

CSV 文件簡介

CSV(逗號分隔值)文件是一種基於文本的簡單文件格式,用於存儲表格數據。每一行表示一條記錄,行內的值用逗號、製表符或自定義分隔符分隔。

CSV 文件具有以下優勢:

  • **廣泛兼容:**Excel、Google Sheets、數據庫及 Python、R、SQL 等編程環境均可讀取。
  • **簡單易用:**可方便地導入、導出和進行數據處理與分析。

在實際應用中,CSV 文件可用來存儲聯繫人信息、銷售數據、日誌數據等結構化數據,便於後續處理和分析。

安裝 Python TXT 轉 CSV 庫

Spire.XLS for Python是一個功能強大的庫,不僅支持創建和編輯 Excel 文件,還能高效操作 CSV 文件,且無需安裝 Microsoft Excel。藉助 Spire.XLS,開發者可以輕鬆實現 TXT 轉 CSV、數據寫入、表格格式處理、公式計算以及批量文件操作等任務。

 

你可以運行以下命令直接從 PyPI 安裝該庫:

pip install Spire.XLS

在 Python 中將單個 TXT 文件轉換為 CSV

將單個TXT文本文件轉換為 CSV 非常簡單,只需以下幾個步驟即可完成:

  • 讀取 TXT 文件:加載TXT文件並逐行讀取文本內容。
  • 分割文本數據:根據分隔符(如空格、製表符或逗號)拆分字段。
  • 寫入 CSV 文件:使用 Spire.XLS 將數據寫入新的 CSV 文件。
  • 驗證輸出:在 Excel、Google Sheets 或文本編輯器中檢查 CSV 文件。

示例代碼:

下面的代碼示例展示如何使用 Python 導出 TXT 文本文件為 CSV:

from spire.xls import *

# 讀取 TXT 文件
with open("data.txt", "r", encoding="utf-8") as file:
    lines = file.readlines()

# 處理每行數據(按空格分割,可根據需要更改分隔符)
processed_data = [line.strip().split() for line in lines]

# 創建 Excel 工作簿
workbook = Workbook()
# 獲取第一個工作表
sheet = workbook.Worksheets[0]

# 將處理後的數據寫入工作表
for row_num, row_data in enumerate(processed_data):
    for col_num, cell_data in enumerate(row_data):
        sheet.Range[row_num + 1, col_num + 1].Value = cell_data

# 將工作表保存為 CSV 文件(UTF-8 編碼)
sheet.SaveToFile("Txt轉Csv.csv", ",", Encoding.get_UTF8())
# 釋放工作簿資源
workbook.Dispose()

TXT 轉 CSV 輸出結果:

 

批量轉換多個 TXT 文件為 CSV

如果你有多個文本文件需要自動轉換為 CSV,可以遍歷文件夾中的所有 .txt 文件,並逐一轉換。

以下代碼演示如何在 Python 中批量將多個 TXT 文件轉換為 CSV:

import os
from spire.xls import *

# TXT 文件所在文件夾
input_folder = "txt_files"
output_folder = "csv_files"

# 如果輸出文件夾不存在,則創建
os.makedirs(output_folder, exist_ok=True)

# 單個 TXT 文件轉換函數
def convert_txt_to_csv(file_path, output_path):
    with open(file_path, "r", encoding="utf-8") as f:
        lines = f.readlines()

    processed_data = [line.strip().split() for line in lines if line.strip()]

    workbook = Workbook()
    sheet = workbook.Worksheets[0]

    for row_num, row_data in enumerate(processed_data):
        for col_num, cell_data in enumerate(row_data):
            sheet.Range[row_num + 1, col_num + 1].Value = cell_data

    sheet.SaveToFile(output_path, ",", Encoding.get_UTF8())
    workbook.Dispose()
    print(f"已轉換 '{file_path}' -> '{output_path}'")

# 遍歷文件夾中所有 TXT 文件並轉換
for filename in os.listdir(input_folder):
    if filename.lower().endswith(".txt"):
        input_path = os.path.join(input_folder, filename)
        output_name = os.path.splitext(filename)[0] + ".csv"
        output_path = os.path.join(output_folder, output_name)

        convert_txt_to_csv(input_path, output_path)

Python TXT 轉 CSV 高級技巧

在將文本文件轉換為 CSV 時,不同文本文件可能存在格式差異或潛在錯誤,以下技巧可幫助你更高效地處理各種場景。

1. 處理不同分隔符

並非所有文本文件都使用空格分隔值。如果 TXT 文件使用製表符、逗號或其他字符,可調整 split() 函數以匹配分隔符:

  • 製表符分隔文件(.tsv):
processed_data = [line.strip().split('\t') for line in lines]
  • 逗號分隔文件:
processed_data = [line.strip().split(',') for line in lines]
  • 自定義分隔符(如 |):
processed_data = [line.strip().split('|') for line in lines]

這樣可以確保數據在寫入 CSV 前正確拆分為列。

2. 添加錯誤處理

讀取或寫入文件時,使用 try-except 捕獲潛在錯誤,可增強腳本穩健性,避免意外崩潰:

try:
    # 你的代碼
except Exception as e:
    print("錯誤:", e)

提示:使用清晰的錯誤信息提示便於理解問題所在。

3. 跳過空行

有些 TXT 文件可能包含空行,可在處理時過濾空行,避免在 CSV 中生成空行:

processed_data = [line.strip().split() for line in lines if line.strip()]

總結

本文介紹瞭如何使用 Spire.XLS for Python 在 Python 中將 TXT 文本文件轉換為 CSV。通過這些方法,你可以輕鬆處理文本數據,使其適合分析、報表和共享。Spire.XLS 不僅支持單文件轉換,還能實現批量處理,並可靈活應對不同分隔符和文本格式。

常見問題解答:Python 文本轉 CSV

Q1: 可以在未安裝 Microsoft Excel 的情況下將 TXT 文件轉換為 CSV 嗎?

A1: 可以。Spire.XLS for Python 獨立於 Excel,可直接創建和導出 CSV 文件。

Q2: 如何在 Python 中批量將多個 TXT 文件轉換為 CSV?

A2: 使用循環讀取文件夾中的所有 TXT 文件,並對每個文件應用轉換邏輯。教程中提供了可直接使用的 Python 批量轉換示例。

Q3: 轉換時如何處理 TXT 文件中的空行或列數不一致的情況?

A3: 在處理過程中過濾空行,並檢查列數一致性,以避免輸出 CSV 中出現錯誤或空行。

Q4: 如何在 Python 中將帶製表符或自定義分隔符的 TXT 文件轉換為 CSV?

A4: 可根據 TXT 文件中的分隔符調整 split() 函數--製表符 (\t)、逗號或其他自定義字符,然後再寫入 CSV。

Spire.XLS for Python試用下載,請聯繫慧都科技

歡迎加入Spire技術交流Q羣(125237868),與更多小夥伴一起提升文檔開發技能~

user avatar tinygeeker Avatar liutos Avatar dalidexiaoxiami Avatar xiangjiaochihuanggua Avatar lewyon Avatar finally_m Avatar magnesium_5a22722d4b625 Avatar meiyounvpengyoudeqikeng Avatar jackdan9 Avatar
Favorites 9 users favorite the story!
Favorites

Add a new Comments

Some HTML is okay.