【python】将多个tsv文件合并到excel表中
需求
将某个目录下多个特定文本文件,合并到excel表中。并要求将文件名作为sheet名,每个sheet中第一行第一个单元格填写对应文件的所在路径,单元格格式使用Times New Roman。
使用方法:
# yourdir: 输入多个特定文件所在目录
# end_str: 以end_str结尾的特定文件(要进性合并的文件)
# outout_xlsx: 指定输出的excel文件名
# suffix: 为了获取sheet名,用于分割的字符(串),然后去除该分割(串)符之后的字符
# prefix: 如果文件前缀有该字符(串),将去除该字符(串)之前的字符
python merge_tsv2xlsx.py ${yourdir} ${end_str} ${outout_xlsx} ${suffix} ${prefix}
示例:
# 比如"/your/files/dir"目录下有如下文件:
$ ls /your/files/dir
a.1.spe.tsv
a.2.spe.tsv
a.3.spe.tsv
a.x.spe.txt
# 合并该目录下所有.spe.tsv文件,并将sheet名命名为1,2,3,4
python merge_tsv2xlsx.py /your/files/dir .tsv /your/files/dir/a.merge.spe.xlsx .spe.tsv a.
注:后两个参数用于去除不需要的字符,如果不对前缀和后缀去除,直接设定为""
(空)。
合并后的excel示例:
实现
命名为merge_tsv2xlsx.py
import sys
import os
import openpyxl
import pandas as pd
from openpyxl.styles import Font
from openpyxl.cell import WriteOnlyCell
from openpyxl.comments import Commenttsv_dir = sys.argv[1]
end_str = sys.argv[2] # eg: .txt
xlsx_out = sys.argv[3]
split_str = sys.argv[4] # sheet name from split filename
start_str = sys.argv[5] # sheet name: rm start str of filenamedef str2num(str_a):try:n = float(str_a)except ValueError as e:# print("NOTE: not num: ", str_a)n = str_afinally:passreturn ndef write_tsv2xlsx(tsv_file, sheet_name, xlsx_file):wb = openpyxl.load_workbook(xlsx_file)ws = wb.create_sheet(title=sheet_name, index=0)cell = WriteOnlyCell(ws, value=tsv_file)cell.font = Font(name='Times New Roman', size=11, color="D3D3D3")cell.comment = Comment(text="FilePath", author="yourname")ws.append([cell])with open(tsv_file, 'r') as f_in:for line in f_in:line_info_tmp = line.strip().split('\t')# line_info = [str2num(s) for s in line_info_tmp]# ws.append(line_info)cells = []for s in line_info_tmp:cell = WriteOnlyCell(ws, value=s)cell.font = Font(name='Times New Roman', size=11)cells.append(cell)ws.append(cells)wb.save(xlsx_file)def merge_all_tsv():for file_n in os.listdir(tsv_dir):if not file_n.endswith(end_str):continuetsv_file_path = os.path.join(tsv_dir, file_n)if split_str:sname = file_n.split(split_str)[0]else:sname = file_nif start_str:name = sname.split(start_str)[1]else:name = snameprint("#NOTE:%s file is writed to xlsx %s!" % (tsv_file_path, xlsx_out))write_tsv2xlsx(tsv_file_path, name, xlsx_out)if __name__ == '__main__':if os.path.isfile(xlsx_out):print("**ERROR**: %s exists! Please change .xlsx file name" % xlsx_out)sys.exit(1)df_xlsx = pd.DataFrame()df_xlsx.to_excel(xlsx_out)merge_all_tsv()
【python】将多个tsv文件合并到excel表中相关推荐
- Python办公自动化实践1:从多个excel表中提取数据并汇总到一个工作表页中,表格,抽取,sheet
Python办公自动化实践1:从多个excel表中提取数据并汇总到一个工作表页中,表格,抽取,sheet 发表时间:2020-04-26 问题:从当前目录或子目录中查询符合条件的excel表格,并从这 ...
- Python 实现通过Baidu地图批量自动查询Excel表中各单位的地址
本程序通过selenium模块模拟打开baidu地图网页,输入公司名称来查询地址,最后采用BeautifulSoup模块实现公司地址提取. 采用openpyxl模块读取Excel的.xlsx后缀文件并 ...
- .data文件导入到excel表中(以马疝病为例)
步骤如图: step1: step2 step3:将.data文件转换为.txt文件 step4:打开wps step5: step6: step7 step8 step9 step10
- 使用Python读取LabVIEW TDMS 格式文件转成Excel格式+多进程版本
使用Python读取LabVIEW TDMS 格式文件转成Excel格式+多进程版本 文章目录 使用Python读取LabVIEW TDMS 格式文件转成Excel格式+多进程版本 前言: 背景 tm ...
- Python 读pdf数据写入Excel表中
活动地址:CSDN21天学习挑战赛 目录 一.Python操作PDF的库有很多 二.pdflumber作为案例讲解使用 2.安装配置 2.加载PDF 3.读取pdf文档信息 1)读取pdf文档 ...
- python处理excel表格数据-利用Python处理和分析Excel表中数据实战.doc
利用Python处理和分析Excel表中数据实战 [利用python进行数据分析--基础篇]利用Python处理和分析Excel表中数据实战 原创 2017年06月28日 15:09:32 标签: p ...
- Python处理Excel表中单元格带有换行的数据
Python处理Excel表中单元格带有换行的数据 文章目录 Python处理Excel表中单元格带有换行的数据 问题样式 实例问题 实例实现代码 实例结果 问题样式 在数据处理过程中常常会遇到这样一 ...
- python爬虫BeautifulSoup库抓取500彩票网竞彩足球信息并在excel表中对中奖赔率设置格式
目录 前言 数据的储存 格式设置 代码 结果展示 疑惑 前言 上一篇博客记录了使用BeautifulSoup模块抓取500彩票网竞彩足球赛果及赔率,但最后呈现的数据不够细致和美观,对最终开奖的赔率没有 ...
- python怎么导入sql数据库,##使用python将excel表中数据导入sql server数据库
如何用python将excel数据导入到postgresql数据库中 把excel表格另存为csv文件 python将exce文件含有多个sheet同时l导入sqlserver数据库 需要使用xlrd ...
最新文章
- 《深入理解Spark:核心思想与源码分析》——3.10节创建和启动ExecutorAllocationManager...
- 二.安全NA之ASA基础
- Software develop Model
- I had no sooner finished eating than went to toilet.
- 计算机英语 传输介质,计算机英语实用教程unit7
- 2016-2017-20155329 《Java程序设计》第7周学习总结
- java arraylist 合并_在Java中将两个arrayList合并到一个新的arrayList中,没有重复且没有顺序...
- 博客园markdown公式
- opencv 学习之 亮度检测
- 手机远程控制软件和开源框架
- 电脑从硬盘启动计算机,电脑怎么设置第一启动项为硬盘
- 化解仓储难题,WMS智能仓储系统解决方案
- 计算机不认2t移动硬盘,win7系统无法识别2T希捷的硬盘的解决方法
- @Scheduled同步多线程配置
- Q3亏损收窄预计Q4季度实现盈利,趣头条走上盈利分水岭靠什么?
- 众恒微拓科技:品质退款率怎么优化
- 腾讯云学生服务器官网地址-腾讯云学生服务器如何购买
- 非因推荐 | 肿瘤微环境研究大剖析——肿瘤相关巨噬细胞
- [转]Go在谷歌:以软件工程为目的的语言设计
- 树莓派安装Samba服务构建家庭NAS