Python结合Free Spire.XLS库实现TXT到CSV的高效转换

 更新时间:2025年12月21日 14:20:05   作者:Eiceblue  
在数据处理、数据分析或报表生成场景中,TXT文本文件因格式灵活被广泛使用,但CSV格式凭借结构化、易被Excel/Pandas/数据库解析的优势,成为数据交互的主流选择,本文将分享如何用Python结合Free Spire.XLS库实现TXT到CSV的高效转换,需要的朋友可以参考下

引言

在数据处理、数据分析或报表生成场景中,TXT 文本文件因格式灵活被广泛使用,但 CSV 格式凭借结构化、易被 Excel/Pandas/数据库解析的优势,成为数据交互的主流选择。本文将分享如何用 Python 结合 Free Spire.XLS 库实现 TXT 到 CSV 的高效转换,覆盖基础转换、自定义分隔符、乱码解决等核心场景,零基础也能快速上手。

一、环境准备:安装免费 Python 库

Free Spire.XLS for Python是一款免费的Excel/CSV处理库,无需安装Microsoft Excel即可实现文件格式转换、数据读写等操作,但有一定篇幅限制。

1.1 pip 安装命令

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

pip install Spire.Xls.Free

1.2 安装常见问题解决

若安装失败,可尝试以下方案:

  • 升级pip:python -m pip install --upgrade pip
  • 手动下载 whl 文件安装(官网地址)。

二、基础实现:TXT 转 CSV(逗号分隔)

2.1 场景说明

假设待转换的 data.txt 文件内容如下(逗号分隔):

姓名,年龄,城市,职业
张三,25,北京,程序员
李四,30,上海,产品经理
王五,28,广州,设计师

2.2 Python 代码实现

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

def txt_to_csv_basic(txt_path, csv_path):
    # 1. 创建Workbook对象
    workbook = Workbook()
    # 2. 获取第一张工作表
    worksheet = workbook.Worksheets[0]
    
    # 3. 读取TXT文件内容
    with open(txt_path, 'r', encoding='utf-8') as f:
        lines = f.readlines()
    
    # 4. 将TXT内容写入工作表
    row_index = 1  # Spire.XLS行索引从1开始
    for line in lines:
        # 去除换行符并按逗号分割
        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"基础转换完成!CSV文件已保存至:{csv_path}")

# 调用函数
if __name__ == "__main__":
    txt_file = "data.txt"
    csv_file = "output_basic.csv"
    txt_to_csv_basic(txt_file, csv_file)

转换后的 CSV 文件:

2.3 代码解析

  • Workbook():创建 Excel 工作簿对象,是 Free Spire.XLS 的核心入口;
  • Worksheets[]:获取指定工作表用于存储 TXT 数据;
  • 读取 TXT 后按行分割,逐单元格写入工作表;
  • SaveToFile():指定 FileFormat.CSV 即可将工作表导出为 CSV 格式。

三、进阶场景:自定义分隔符/乱码处理

场景1:TXT 文件为制表符(\t)分隔

data_tab.txt 内容为制表符分隔:

姓名	年龄	城市	职业
张三	25	北京	程序员
李四	30	上海	产品经理

只需修改分割符为 \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"制表符分隔转换完成!文件路径:{csv_path}")

# 调用
txt_to_csv_tab_separator("data_tab.txt", "output_tab.csv")

场景2:解决 TXT 转 CSV 乱码问题

若 TXT 文件编码为 GBK/GB2312,读取时指定对应编码即可:

# 仅修改读取TXT的编码参数
with open(txt_path, 'r', encoding='gbk') as f:  # 替换为gb2312/utf-8-sig(含BOM)
    lines = f.readlines()

四、常见问题与解决方案

问题现象原因分析解决方案
CSV 文件打开后数据错位TXT 分隔符不统一统一分隔符(如替换所有空格为逗号)
转换后中文显示为乱码编码不匹配读取 TXT 时指定正确编码(UTF-8/GBK/GB2312)
大文件转换卡顿/崩溃一次性读取全部内容采用分批读取+写入的方式
FreeSpire 模块导入失败安装不完整重新安装或手动下载 whl 文件

五、扩展应用:批量转换多个 TXT 文件

若需批量转换文件夹下所有 TXT 文件为 CSV,可结合 os 模块实现:

import os

def batch_txt_to_csv(txt_folder, csv_folder):
    # 创建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)
            # 调用基础转换函数
            txt_to_csv_basic(txt_path, csv_path)
    
    print(f"批量转换完成!所有CSV文件已保存至:{csv_folder}")

# 调用(转换txt_files文件夹下所有TXT,保存到csv_files文件夹)
batch_txt_to_csv("txt_files", "csv_files")

本文基于 Free Spire.XLS for Python 免费库实现了 TXT 到 CSV 的全场景转换,包括基础转换、自定义分隔符、乱码解决及批量转换,相比传统方法更简洁、稳定。Free Spire.XLS for Python 不仅支持 TXT 转 CSV,还可实现 CSV 转 Excel、Excel 转 TXT 等格式互转,满足数据处理的多样化需求。

以上就是Python结合Free Spire.XLS库实现TXT到CSV的高效转换的详细内容,更多关于Python TXT转为CSV格式的资料请关注脚本之家其它相关文章!

相关文章

  • YOLOv5改进系列之增加小目标检测层

    YOLOv5改进系列之增加小目标检测层

    yolov5出来已经很长时间了,所以有关yolov5的一些详细介绍在这里就不一一介绍了,下面这篇文章主要给大家介绍了关于YOLOv5改进系列之增加小目标检测层的相关资料,需要的朋友可以参考下
    2022-09-09
  • flask中获取各种请求数据的常见方法小结

    flask中获取各种请求数据的常见方法小结

    在 Flask 里,能使用多种方法获取不同类型的请求数据,这篇文章为大家详细介绍了Flask中常见请求数据的获取方式,有需要的小伙伴可以参考一下
    2025-06-06
  • Python matplotlib绘制散点图配置(万能模板案例)

    Python matplotlib绘制散点图配置(万能模板案例)

    这篇文章主要介绍了Python matplotlib绘制散点图配置(万能模板案例),散点图是指在​ 回归分析​​​中,数据点在直角坐标系平面上的​分布图​​​,散点图表示因变量随​​自变量​​​而​变化​​​的大致趋势,据此可以选择合适的函数​​对数​​​据点进行​拟合
    2022-07-07
  • GDAL 矢量属性数据修改方式(python)

    GDAL 矢量属性数据修改方式(python)

    这篇文章主要介绍了GDAL 矢量属性数据修改方式(python),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-03-03
  • Python基于pyopencv人脸识别并绘制GUI界面

    Python基于pyopencv人脸识别并绘制GUI界面

    本文详细讲解了Python基于pyopencv人脸识别并绘制GUI界面,文中通过示例代码介绍的非常详细。对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-12-12
  • python实现数据分析与建模

    python实现数据分析与建模

    这篇文章主要介绍了python实现数据分析与建模功能,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-07-07
  • 使用Python实现照片按照日期自动分类的操作指南

    使用Python实现照片按照日期自动分类的操作指南

    最近准备把近几年手机里面存储的照片按年份分类存储到硬盘里面,不知不觉累积了4000多张照片,人工一张张分类实在是太费时间、也容易出错,所以本文给大家介绍了使用Python实现照片按照日期自动分类的操作指南,需要的朋友可以参考下
    2025-08-08
  • Python读取Nacos配置时设置命名空间的方法步骤

    Python读取Nacos配置时设置命名空间的方法步骤

    这篇文章主要介绍了Nacos配置管理的命名空间原理、Python端配置步骤、最佳实践以及常见问题解决方案,强调通过合理命名空间与动态配置机制,实现多环境隔离和高效运维管理,需要的朋友可以参考下
    2025-10-10
  • python使用writerows写csv文件产生多余空行的处理方法

    python使用writerows写csv文件产生多余空行的处理方法

    这篇文章主要介绍了python使用writerows写csv文件产生多余空行的处理方法,需要的朋友可以参考下
    2019-08-08
  • python wordcloud库实例讲解使用方法

    python wordcloud库实例讲解使用方法

    这篇文章主要介绍了python wordcloud库实例,词云通过以词语为基本单位,更加直观和艺术地展示文本。wordcloud是优秀的词云展示的python第三方库
    2022-12-12

最新评论