Python实现CSV转TXT格式(单文件+批量处理)

 更新时间:2026年01月05日 09:06:21   作者:Eiceblue  
CSV格式因结构简洁、易与表格软件兼容而被广泛使用,但TXT格式具有更强的通用性、更低的存储冗余,下面我们就来看看如何使用Python实现二者的转换吧

在数据处理、报表归档和跨平台数据传输场景中,CSV格式因结构简洁、易与表格软件兼容而被广泛使用,但TXT格式具有更强的通用性、更低的存储冗余,且无需专用软件即可打开查看。本文将详细介绍如何使用 Free Spire.XLS for Python 免费库实现 CSV 到 TXT 的格式转换,涵盖单文件转换和批量文件夹转换两种核心场景,解决中文乱码、数据结构错乱等常见问题。

一、安装免费 Python 库

Free Spire.XLS for Python 是一款功能强大的Excel/CSV处理库,无需依赖Microsoft Excel环境,支持CSV文件的读取、解析和格式转换,且使用免费。首先需要完成库的安装,推荐使用pip命令快速部署:

1. 核心安装命令

pip install Spire.Xls.Free

2. 备用安装方案(若 pip 安装失败)

如果遇到网络超时或版本兼容问题,可以前往 Spire 官方下载页面下载 .whl 文件,通过本地文件安装:

pip install 本地文件路径/Spire.XLS-for-Python-x.x.x-py3-none-xxxx.whl

3. 注意事项

  • 支持Python 3.6及以上版本;
  • 免费版对单个文件的处理行数有一定限制(满足常规小型数据处理需求);
  • 安装完成后,直接导入Spire.Xls即可使用核心功能。

二、CSV 转 TXT 文本文件的核心逻辑

使用 Free Spire.XLS for Python 实现 CSV 转 TXT 的核心流程清晰易懂,无需复杂的解析逻辑,库已封装好 CSV 文件的读取接口,核心步骤如下:

  • 创建 Workbook 对象(工作簿),用于承载 CSV 文件数据;
  • 调用 Workbook.LoadFromFile() 方法加载目标 CSV 文件,指定正确编码避免中文乱码;
  • 获取 CSV 文件对应的工作表(Worksheet),CSV 加载后默认生成单个工作表;
  • 调用 Worksheet.SaveToFile() 方法将 CSV 另存为 TXT 文本格式,自定义数据分隔格式及编码;
  • 释放资源,完成转换。

三、案例1:单个 CSV 文件转 TXT 格式

本案例实现单个 CSV 文件的转换,保留原 CSV 的列分隔结构,解决中文乱码问题,代码可直接运行。

完整代码实现:

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

def csv_to_txt_single(csv_file_path: str, txt_file_path: str):
    """
    单个CSV文件转换为TXT文件
    :param csv_file_path: 输入CSV文件路径(绝对路径/相对路径)
    :param txt_file_path: 输出TXT文件路径(绝对路径/相对路径)
    """
    try:
        # 1. 创建Workbook对象
        workbook = Workbook()

        # 2. 加载CSV文件
        workbook.LoadFromFile(csv_file_path, ",")

        # 3. 获取第一个工作表(CSV文件加载后仅生成一个工作表)
        worksheet = workbook.Worksheets[0]
        
        # 4. 保存为TXT文本文件,并指定分隔符和编码
        worksheet.SaveToFile(txt_file_path, " ", Encoding.get_UTF8())
        workbook.Dispose()

        print(f"单个CSV转换成功!TXT文件保存路径:{txt_file_path}")

    except Exception as e:
        print(f"单个CSV转换失败:{str(e)}")
    finally:
        # 6. 释放工作簿资源,避免内存泄漏
        workbook.Dispose()

# 调用函数执行转换(替换为你的CSV文件路径和目标TXT路径)
if __name__ == "__main__":
    input_csv = "示例.csv"
    output_txt = "result.txt"
    csv_to_txt_single(input_csv, output_txt)

转换效果预览:

四、案例2:批量转换文件夹下所有 CSV 文件

在实际工作中,常需要处理一个文件夹下的多个 CSV 文件,此时可结合os模块遍历文件夹,批量调用单文件转换逻辑,提升处理效率。

完整代码实现:

from spire.xls import *
from spire.xls.common import *
import os  # 导入os模块用于文件夹遍历和路径处理

def csv_to_txt_single(csv_file_path: str, txt_file_path: str):
    """
    单个CSV文件转换为TXT文件
    :param csv_file_path: 输入CSV文件路径
    :param txt_file_path: 输出TXT文件路径
    """

    try:
        # 1. 创建Workbook对象
        workbook = Workbook()

        # 2. 加载CSV文件(指定逗号作为列分隔符)
        workbook.LoadFromFile(csv_file_path, ",")

        # 3. 获取第一个工作表(CSV加载后仅生成一个工作表)
        worksheet = workbook.Worksheets[0]
        
        # 4. 保存为TXT文件,使用传入的合法输出路径,修正编码方法命名
        worksheet.SaveToFile(txt_file_path, " ", Encoding.get_UTF8())

        print(f"转换成功:{os.path.basename(csv_file_path)} -> {os.path.basename(txt_file_path)}")
    
    # 修正:except与try同级对齐,块内代码缩进一级
    except Exception as e:
        print(f"转换失败:{os.path.basename(csv_file_path)} - {str(e)}")
    
    # 修正:finally与try/except同级对齐,块内代码缩进一级
    finally:
        # 释放工作簿资源,避免内存泄漏(增加非空判断)
        workbook.Dispose()

def csv_to_txt_batch(csv_folder_path: str, txt_folder_path: str):
    """
    批量转换指定文件夹下所有CSV文件为TXT文件
    :param csv_folder_path: 输入CSV文件夹路径
    :param txt_folder_path: 输出TXT文件夹路径
    """
    # 新增:检查输入文件夹是否存在,不存在则直接提示并退出
    if not os.path.exists(csv_folder_path):
        print(f"错误:输入文件夹不存在!路径:{csv_folder_path}")
        return
    
    # 1. 检查输出文件夹是否存在,不存在则创建(避免写入文件时报错)
    if not os.path.exists(txt_folder_path):
        os.makedirs(txt_folder_path)
        print(f"输出文件夹不存在,已创建:{txt_folder_path}")

    # 2. 遍历CSV文件夹,筛选所有.csv后缀文件(忽略大小写,兼容.CSV)
    for file_name in os.listdir(csv_folder_path):
        if file_name.lower().endswith(".csv"):
            # 3. 拼接完整的CSV输入路径和TXT输出路径
            # 拼接CSV文件完整路径
            input_csv_full_path = os.path.join(csv_folder_path, file_name)
            # 替换文件后缀为.txt,保留原文件名
            txt_file_name = os.path.splitext(file_name)[0] + ".txt"
            # 拼接TXT文件完整路径
            output_txt_full_path = os.path.join(txt_folder_path, txt_file_name)

            # 4. 调用单个转换函数,处理当前CSV文件
            csv_to_txt_single(input_csv_full_path, output_txt_full_path)

    # 5. 批量转换完成提示
    print(f"\n批量转换任务结束!所有TXT文件已保存至:{txt_folder_path}")

# 调用批量转换函数执行任务
if __name__ == "__main__":
    # 配置输入CSV文件夹和输出TXT文件夹路径(可根据自己的需求修改)
    INPUT_CSV_FOLDER = "input_csvs"  # 存放所有待转换CSV的文件夹
    OUTPUT_TXT_FOLDER = "output_txts"  # 存放转换后TXT的文件夹

    # 执行批量转换
    csv_to_txt_batch(INPUT_CSV_FOLDER, OUTPUT_TXT_FOLDER)

代码关键解析:

  • 文件夹处理:使用 os.makedirs() 创建输出文件夹,避免因文件夹不存在导致写入失败;
  • 文件筛选:通过 file_name.lower().endswith(".csv") 筛选 CSV 文件,忽略文件名后缀的大小写差异,提升兼容性;
  • 文件名保留:使用 os.path.splitext() 分割原文件名和后缀,生成对应的 TXT 文件名,保持文件命名的一致性;
  • 异常隔离:单个 CSV 文件转换失败不会影响其他文件的处理,提升批量任务的稳定性。

输出:

五、总结与拓展

本文通过免费 Python 库实现了 CSV 到 TXT 文本格式的单文件转换和批量转换,核心优势如下:

  • 无需依赖 Excel 环境,跨平台兼容性强;
  • 封装完善,无需手动解析 CSV 格式,降低开发成本;
  • 支持编码自定义和数据格式化,解决实际场景中的常见问题。

拓展场景:

  • 数据筛选后转换:在遍历工作表数据时,增加条件判断,实现精准数据转换;
  • CSV 转带格式 TXT:通过格式化字符串(如{:10s})固定列宽,生成更规范的结构化 TXT 文件;
  • 其他格式转换:Free Spire.XLS for Python 还支持 CSV 转 Excel、Excel 转 TXT,可通过类似逻辑实现多格式互转。

通过本文的代码和指南,你可以快速实现高效的 CSV 转 TXT 处理,满足日常数据归档和传输的需求,同时也可基于该库拓展更多复杂的数据处理功能。

到此这篇关于Python实现CSV转TXT格式(单文件+批量处理)的文章就介绍到这了,更多相关Python CSV转TXT内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 基于Python实现m3u8视频下载

    基于Python实现m3u8视频下载

    m3u8 是一种基于文本的媒体播放列表文件格式,通常用于指定流媒体播放器播放在线媒体流,本文将利用Python实现m3u8视频下载器,感兴趣的可以了解一下
    2023-05-05
  • 文件上传服务器-jupyter 中python解压及压缩方式

    文件上传服务器-jupyter 中python解压及压缩方式

    这篇文章主要介绍了文件上传服务器-jupyter 中python解压及压缩方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • Python使用Quart作为web服务器的代码实现

    Python使用Quart作为web服务器的代码实现

    Quart 是一个异步的 Web 框架,它使用 ASGI 接口(Asynchronous Server Gateway Interface)而不是传统的 WSGI,这使得 Quart 特别适合用于构建需要处理大量并发连接的高性能 Web 应用程序,本文给大家介绍了Python使用Quart作为web服务器的代码实现
    2024-06-06
  • Python数据类型详解(一)字符串

    Python数据类型详解(一)字符串

    简单的说字符串String就是使用引号定义的一组可以包含数字,字母,符号(非特殊系统符号)的集合。今天我们就来详细探讨下Python数据类型中的字符串
    2016-05-05
  • 使用Python实现pdf转图片再进行OCR识别

    使用Python实现pdf转图片再进行OCR识别

    这篇文章主要为大家详细介绍了如何使用Python实现pdf转图片再进行OCR识别功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2025-04-04
  • python zip,lambda,map函数代码实例

    python zip,lambda,map函数代码实例

    这篇文章主要介绍了python zip,lambda,map函数代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04
  • python写入文件如何取消自动换行

    python写入文件如何取消自动换行

    这篇文章主要介绍了python写入文件如何取消自动换行问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • 打开并读取npy文件,查看文件内容方式

    打开并读取npy文件,查看文件内容方式

    这篇文章主要介绍了打开并读取npy文件,查看文件内容方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02
  • python使用pyqt写带界面工具的示例代码

    python使用pyqt写带界面工具的示例代码

    本篇文章主要介绍了python使用pyqt写带界面工具的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • 浅谈PYTHON 关于文件的操作

    浅谈PYTHON 关于文件的操作

    这篇文章主要介绍了PYTHON 关于文件的操作,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03

最新评论