Python3腳本實(shí)現(xiàn)Excel與TXT的智能轉(zhuǎn)換
在數(shù)據(jù)處理的日常工作中,我們經(jīng)常需要將Excel中的結(jié)構(gòu)化數(shù)據(jù)轉(zhuǎn)換為其他格式。本文將手把手教你如何用Python輕松實(shí)現(xiàn)Excel到TXT的智能轉(zhuǎn)換,讓重復(fù)性工作自動(dòng)化,效率提升立竿見(jiàn)影!
場(chǎng)景應(yīng)用:為什么需要這種轉(zhuǎn)換
當(dāng)遇到以下場(chǎng)景時(shí),這個(gè)腳本將成為你的得力助手:
- 批量生成配置文件:將服務(wù)器配置信息從Excel快速生成可部署的文本文件
- 問(wèn)卷數(shù)據(jù)處理:將收集到的開(kāi)放式問(wèn)題答案自動(dòng)整理成獨(dú)立文檔
- 文檔自動(dòng)化生成:根據(jù)產(chǎn)品參數(shù)表快速創(chuàng)建產(chǎn)品說(shuō)明文檔
- 多語(yǔ)言資源處理:將翻譯好的多語(yǔ)言文本批量生成對(duì)應(yīng)語(yǔ)言包文件
- 數(shù)據(jù)分析預(yù)處理:將特定列數(shù)據(jù)提取為機(jī)器學(xué)習(xí)可讀的文本格式
技術(shù)解析:代碼實(shí)現(xiàn)詳解
核心代碼展示
import openpyxl import os def xlsx_to_txt(file_path, output_dir="output", header_row=1): """ 將Excel文件內(nèi)容轉(zhuǎn)換為多個(gè)TXT文件 參數(shù): file_path (str): Excel文件路徑 output_dir (str): 輸出目錄,默認(rèn)為"output" header_row (int): 標(biāo)題行數(shù),默認(rèn)為1 """ try: # 創(chuàng)建輸出目錄 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: # 跳過(guò)標(biāo)題行 # 檢查序號(hào)列是否為空 if row[0] is None: print(f"警告:第{row_num}行缺少序號(hào),已跳過(guò)") continue # 檢查內(nèi)容列是否為空 if row[1] is None: print(f"警告:第{row_num}行內(nèi)容為空,已跳過(guò)") 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}行文件名無(wú)效,已跳過(guò)") continue # 寫(xiě)入文件 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"成功創(chuàng)建文件: {output_path}") except Exception as e: print(f"錯(cuò)誤:無(wú)法寫(xiě)入文件 {output_path} - {str(e)}") except FileNotFoundError: print(f"錯(cuò)誤:文件 {file_path} 不存在!") except Exception as e: print(f"程序運(yùn)行出錯(cuò): {str(e)}") # 示例調(diào)用 xlsx_to_txt('data.xlsx')
改進(jìn)點(diǎn)說(shuō)明
1.輸出目錄管理
新增output_dir參數(shù),自動(dòng)創(chuàng)建輸出目錄
2.文件名安全處理
過(guò)濾文件名中的非法字符,避免創(chuàng)建文件失敗
3.空值雙重檢查
同時(shí)檢查文件名和內(nèi)容列,確保數(shù)據(jù)完整性
4.錯(cuò)誤處理增強(qiáng)
添加全面的異常捕獲,提高程序健壯性
5.進(jìn)度反饋
添加成功/失敗提示,方便追蹤處理結(jié)果
實(shí)戰(zhàn)演練:從Excel到TXT的完整流程
準(zhǔn)備數(shù)據(jù)示例(data.xlsx)
執(zhí)行轉(zhuǎn)換
data.xlsx與test.py再同一級(jí)目錄
python3 test.py
生成結(jié)果
成功創(chuàng)建文件: output/10.txt
警告:第3行缺少序號(hào),已跳過(guò)
成功創(chuàng)建文件: output/12.txt
警告:第5行內(nèi)容為空,已跳過(guò)
成功創(chuàng)建文件: output/14.txt
警告:第7行缺少序號(hào),已跳過(guò)
成功創(chuàng)建文件: output/16.txt
成功創(chuàng)建文件: output/17.txt
成功創(chuàng)建文件: output/18.txt
功能擴(kuò)展:按需定制你的轉(zhuǎn)換器
1.多列內(nèi)容合并
content = '\n'.join([str(cell) for cell in row[1:] if cell])
2.自動(dòng)編號(hào)
filename = f"{row_num}_{safe_filename}"
3.保留原始格式
from openpyxl.styles import numbers if cell.number_format == numbers.FORMAT_DATE_XLSX22: # 處理日期格式
4.添加日志系統(tǒng)
import logging logging.basicConfig(filename='converter.log', level=logging.INFO)
最佳實(shí)踐與避坑指南
1.數(shù)據(jù)預(yù)處理
- 使用Excel的"數(shù)據(jù)驗(yàn)證"功能確保文件名列的合法性
- 檢查特殊字符:/\:*?"<>|等Windows禁用字符
2.性能優(yōu)化
- 對(duì)于10萬(wàn)行以上數(shù)據(jù),改用csv模塊讀取
- 使用with語(yǔ)句批量處理文件寫(xiě)入
3.異常處理
- 添加文件權(quán)限檢查
- 處理磁盤(pán)空間不足的情況
4.版本兼容
- 支持.xlsx格式(openpyxl)
- 如需處理.xls文件,可改用xlrd庫(kù)
應(yīng)用場(chǎng)景升級(jí):企業(yè)級(jí)解決方案
對(duì)于更復(fù)雜的業(yè)務(wù)需求,可以擴(kuò)展為:
1.云端部署方案
- 通過(guò)Flask構(gòu)建Web服務(wù)
- 支持文件上傳和結(jié)果下載
2.郵件自動(dòng)發(fā)送
import smtplib # 將生成的txt文件作為附件自動(dòng)發(fā)送
3.數(shù)據(jù)庫(kù)集成
import sqlite3 # 將轉(zhuǎn)換記錄存入數(shù)據(jù)庫(kù)
4.日志監(jiān)控系統(tǒng)
import logging logging.basicConfig(filename='converter.log')
以上就是Python3腳本實(shí)現(xiàn)Excel與TXT的智能轉(zhuǎn)換的詳細(xì)內(nèi)容,更多關(guān)于Python3 Excel轉(zhuǎn)TXT的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
python人工智能tensorflow函數(shù)tf.nn.dropout使用方法
這篇文章主要為大家介紹了python人工智能tensorflow函數(shù)tf.nn.dropout使用示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05Python語(yǔ)法學(xué)習(xí)之進(jìn)程的創(chuàng)建與常用方法詳解
本文我們將學(xué)習(xí)一下在?Python?中去創(chuàng)建并使用多進(jìn)程的方法,可以通過(guò)創(chuàng)建多個(gè)進(jìn)程來(lái)幫助我們提高腳本執(zhí)行的效率,感興趣的可以了解一下2022-04-04Python數(shù)據(jù)分析之Excel和Text文件的讀寫(xiě)操作方法
Python操作Excel分為兩個(gè)主要形式,讀寫(xiě)和交互式操作,可以用不同的第三方工具,下面這篇文章主要給大家介紹了關(guān)于Python數(shù)據(jù)分析之Excel和Text文件的讀寫(xiě)操作方法,需要的朋友可以參考下2024-08-08Python如何生成隨機(jī)數(shù)及random隨機(jī)數(shù)模塊應(yīng)用
這篇文章主要介紹了Python如何生成隨機(jī)數(shù)及random隨機(jī)數(shù)模塊應(yīng)用,首先我們要知道在python中用于生成隨機(jī)數(shù)的模塊是random,在使用前需要import。由此展開(kāi)內(nèi)容介紹,需要的小伙伴可以參考一下2022-06-06淺談Python函數(shù)式編程的返回函數(shù)與匿名函數(shù)
這篇文章主要介紹了淺談Python函數(shù)式編程的返回函數(shù)與匿名函數(shù),如果一個(gè)變量指向了一個(gè)函數(shù),那么,可以通過(guò)該變量來(lái)調(diào)用這個(gè)函數(shù),需要的朋友可以參考下2023-04-04Python?turtle編寫(xiě)簡(jiǎn)單的球類小游戲
turtle?(小海龜)?是?Python?內(nèi)置的一個(gè)繪圖模塊,其實(shí)它不僅可以用來(lái)繪圖,還可以制作簡(jiǎn)單的小游戲。本文將利用Turtle制作一個(gè)簡(jiǎn)單的球類小游戲,感興趣的可以學(xué)習(xí)一下2022-03-03