
在 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),與更多小夥伴一起提升文檔開發技能~