Python3脚本实现Excel与TXT的智能转换

 更新时间:2025年02月27日 14:54:58   作者:XMYX-0  
在数据处理的日常工作中,我们经常需要将Excel中的结构化数据转换为其他格式,本文将使用Python3实现Excel与TXT的智能转换,需要的可以了解下

在数据处理的日常工作中,我们经常需要将Excel中的结构化数据转换为其他格式。本文将手把手教你如何用Python轻松实现Excel到TXT的智能转换,让重复性工作自动化,效率提升立竿见影!

场景应用:为什么需要这种转换

当遇到以下场景时,这个脚本将成为你的得力助手:

  • 批量生成配置文件:将服务器配置信息从Excel快速生成可部署的文本文件
  • 问卷数据处理:将收集到的开放式问题答案自动整理成独立文档
  • 文档自动化生成:根据产品参数表快速创建产品说明文档
  • 多语言资源处理:将翻译好的多语言文本批量生成对应语言包文件
  • 数据分析预处理:将特定列数据提取为机器学习可读的文本格式

技术解析:代码实现详解

核心代码展示

import openpyxl
import os

def xlsx_to_txt(file_path, output_dir="output", header_row=1):
    """
    将Excel文件内容转换为多个TXT文件
    
    参数:
    file_path (str): Excel文件路径
    output_dir (str): 输出目录,默认为"output"
    header_row (int): 标题行数,默认为1
    """
    try:
        # 创建输出目录
        os.makedirs(output_dir, exist_ok=True)
        
        # 加载Excel工作簿
        workbook = openpyxl.load_workbook(file_path)
        sheet = workbook.active

        # 遍历每一行
        for row_num, row in enumerate(sheet.iter_rows(values_only=True), start=1):
            if row_num > header_row:  # 跳过标题行
                # 检查序号列是否为空
                if row[0] is None:
                    print(f"警告:第{row_num}行缺少序号,已跳过")
                    continue
                    
                # 检查内容列是否为空
                if row[1] is None:
                    print(f"警告:第{row_num}行内容为空,已跳过")
                    continue
                    
                # 清理文件名中的非法字符
                safe_filename = "".join(c for c in str(row[0]) if c.isalnum() or c in (' ', '_')).rstrip()
                if not safe_filename:
                    print(f"警告:第{row_num}行文件名无效,已跳过")
                    continue
                    
                # 写入文件
                output_path = os.path.join(output_dir, f"{safe_filename}.txt")
                try:
                    with open(output_path, "w", encoding="utf-8") as txt_file:
                        txt_file.write(str(row[1]))
                    print(f"成功创建文件: {output_path}")
                except Exception as e:
                    print(f"错误:无法写入文件 {output_path} - {str(e)}")
                        
    except FileNotFoundError:
        print(f"错误:文件 {file_path} 不存在!")
    except Exception as e:
        print(f"程序运行出错: {str(e)}")

# 示例调用
xlsx_to_txt('data.xlsx')

改进点说明

1.输出目录管理

新增output_dir参数,自动创建输出目录

2.文件名安全处理

过滤文件名中的非法字符,避免创建文件失败

3.空值双重检查

同时检查文件名和内容列,确保数据完整性

4.错误处理增强

添加全面的异常捕获,提高程序健壮性

5.进度反馈

添加成功/失败提示,方便追踪处理结果

实战演练:从Excel到TXT的完整流程

准备数据示例(data.xlsx)

执行转换

data.xlsx与test.py再同一级目录

python3 test.py

生成结果

成功创建文件: output/10.txt
警告:第3行缺少序号,已跳过
成功创建文件: output/12.txt
警告:第5行内容为空,已跳过
成功创建文件: output/14.txt
警告:第7行缺少序号,已跳过
成功创建文件: output/16.txt
成功创建文件: output/17.txt
成功创建文件: output/18.txt

功能扩展:按需定制你的转换器

1.多列内容合并

content = '\n'.join([str(cell) for cell in row[1:] if cell])

2.自动编号

filename = f"{row_num}_{safe_filename}"

3.保留原始格式

from openpyxl.styles import numbers
if cell.number_format == numbers.FORMAT_DATE_XLSX22:
    # 处理日期格式

4.添加日志系统

import logging
logging.basicConfig(filename='converter.log', level=logging.INFO)

最佳实践与避坑指南

1.数据预处理

  • 使用Excel的"数据验证"功能确保文件名列的合法性
  • 检查特殊字符:/\:*?"<>|等Windows禁用字符

2.性能优化

  • 对于10万行以上数据,改用csv模块读取
  • 使用with语句批量处理文件写入

3.异常处理

  • 添加文件权限检查
  • 处理磁盘空间不足的情况

4.版本兼容

  • 支持.xlsx格式(openpyxl)
  • 如需处理.xls文件,可改用xlrd库

应用场景升级:企业级解决方案

对于更复杂的业务需求,可以扩展为:

1.云端部署方案

  • 通过Flask构建Web服务
  • 支持文件上传和结果下载

2.邮件自动发送

import smtplib
# 将生成的txt文件作为附件自动发送

3.数据库集成

import sqlite3
# 将转换记录存入数据库

4.日志监控系统

import logging
logging.basicConfig(filename='converter.log')

以上就是Python3脚本实现Excel与TXT的智能转换的详细内容,更多关于Python3 Excel转TXT的资料请关注脚本之家其它相关文章!

相关文章

  • python人工智能tensorflow函数tf.nn.dropout使用方法

    python人工智能tensorflow函数tf.nn.dropout使用方法

    这篇文章主要为大家介绍了python人工智能tensorflow函数tf.nn.dropout使用示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • Python语法学习之进程的创建与常用方法详解

    Python语法学习之进程的创建与常用方法详解

    本文我们将学习一下在 Python 中去创建并使用多进程的方法,可以通过创建多个进程来帮助我们提高脚本执行的效率,感兴趣的可以了解一下
    2022-04-04
  • Python 图像处理之PIL库详解用法

    Python 图像处理之PIL库详解用法

    对于图像识别,大量的工作在于图像的处理,处理效果好,那么才能很好地识别,因此,良好的图像处理是识别的基础。在Python中,有一个优秀的图像处理框架,就是PIL库,本文会介绍PIL库中的各种方法,并列举相关例子
    2021-11-11
  • Python数据分析之Excel和Text文件的读写操作方法

    Python数据分析之Excel和Text文件的读写操作方法

    Python操作Excel分为两个主要形式,读写和交互式操作,可以用不同的第三方工具,下面这篇文章主要给大家介绍了关于Python数据分析之Excel和Text文件的读写操作方法,需要的朋友可以参考下
    2024-08-08
  • Python处理字符串中文(汉字)编码的实例

    Python处理字符串中文(汉字)编码的实例

    这篇文章主要介绍了Python处理字符串中文(汉字)编码的实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-04-04
  • python目录与文件名操作例子

    python目录与文件名操作例子

    这篇文章主要介绍了python目录与文件名操作例子,需要的朋友可以参考下
    2016-08-08
  • Python如何生成随机数及random随机数模块应用

    Python如何生成随机数及random随机数模块应用

    这篇文章主要介绍了Python如何生成随机数及random随机数模块应用,首先我们要知道在python中用于生成随机数的模块是random,在使用前需要import。由此展开内容介绍,需要的小伙伴可以参考一下
    2022-06-06
  • 浅谈Python函数式编程的返回函数与匿名函数

    浅谈Python函数式编程的返回函数与匿名函数

    这篇文章主要介绍了浅谈Python函数式编程的返回函数与匿名函数,如果一个变量指向了一个函数,那么,可以通过该变量来调用这个函数,需要的朋友可以参考下
    2023-04-04
  • OpenCV形状检测的示例详解

    OpenCV形状检测的示例详解

    本文主要介绍了OpenCV中的形状检测,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • Python turtle编写简单的球类小游戏

    Python turtle编写简单的球类小游戏

    turtle (小海龟) 是 Python 内置的一个绘图模块,其实它不仅可以用来绘图,还可以制作简单的小游戏。本文将利用Turtle制作一个简单的球类小游戏,感兴趣的可以学习一下
    2022-03-03

最新评论