用Python合并多个txt文件
在上古时代,由于阅读设备垃圾,所以很多txt文件都被分割为以章为单位,一个完整的文件往往要占据一个文件夹,强迫症根本忍受不了。所以希望通过python对txt文件进行合并。
文章目录
- 1.汉字转数字
- 2. 字符排序
- 3. 文本文档合并
1.汉字转数字
合并txt文件需要遵循一个前后顺序,如果文件名中包含数字是最好的,尤其是位数相同的数字,这时文件名读取函数os.listdir
会自动按照数字顺序读取。然而,若文件名是通过汉字进行排序的,那就有些不妙了。
对于型如一千二百五十五
这样的汉字,千、百、十的作用显然强于一、二、五,因为它们决定了位数。如果说类似一、二、五这样的数字可以直接通过字典转化为1,2,5
,那么千、百十则需要对其前面的数字乘以1000,100以及10。
由于我要处理的文件一般不超过十万个,所以最大位数从万开始。
unitDict={"零":0,"":1,"一":1,"二":2,"两":2,"三":3,"四":4,"五":5,"六":6,"七":7,"八":8,"九":9}
decadeDict={"万":10000,"千":1000,"百":100,"十":10}
#十万以内的汉字转数字
def zh2num(name):val = 0for sym in decadeDict.copy():if sym in name:pre,name = name.split(sym) #字符串分割val += decadeDict[sym]*unitDict[pre]if name != "":val += unitDict[name]return val
2. 字符排序
接下来,以汉字转数字为核心算法,来写一个字符排序的函数。由于我们不确定文件名中的序号到底是汉字还是数字,所以需要把二者都考虑进来,然后据此建立字典,通过字典的键对值进行排序,最后输出排好序的文件名列表。
# 如果字符串中存在中文数字,对其进行排序
def sortStr(files,flag=0):nums = "0123456789"zhs = list(unitDict.keys())+list(decadeDict.keys())sortDict = {}end = len(files)for f in files:nStr = "".join([c for c in list(f[:flag] if flag>0 else f) if c in nums])zStr = "".join([c for c in list(f[:flag] if flag>0 else f) if c in zhs])if nStr != "":sortDict[int(nStr)] = felif zStr !="":sortDict[zh2num(zStr)] = felse:end += 1sortDict[end]=freturn [sortDict[n] for n in np.sort(list(sortDict))]
需要注意的是,这个函数的适用条件非常有限,如果想应对更多的情况,还是需要继续改进的。
3. 文本文档合并
最后写出主程序,输入文件路径后,通过os.listdir
读取文件夹中的文件名,需要注意,打开文件的时候可能会遇到一些诡异的字符,所以我们选择忽略错误errors="ignore
。
def emerge(path,flag=0):files = sortStr(os.listdir(path),flag)newTxt = open(path+".txt","w",encoding="GBK")path += "\\"for f in files:try:txt = open(path+f,"r",encoding='GBK',errors="ignore")newTxt.write(f.split(".txt")[0]+"\n")strs = txt.read()newTxt.write(strs+"\n")except Exception as e:print(path+f)print(e)newTxt.close()
用Python合并多个txt文件相关推荐
- 使用python合并多个txt文件
Ana文件夹下有29个txt文件,想通过python将它们合并到一个txt文件中去. import osroot='E:\Programe\corpora' path='E:\Programe\cor ...
- python合并多个txt文件_python如何合并多个txt文件删除所有重复行并生成新文件
展开全部 把所有的这些txt文件放到一2113个文件夹里 打开cmd, 进入5261到这个放4102了多个txt的文件夹, 运行命令copy *.txt all.txt 在该文件夹下1653创建一个p ...
- python合并两个列表并去重_python合并多个txt文件
python合并多个txt文件 #合并一个文件夹下的多个txt文件 #coding=utf-8 import os #获取目标文件夹的路径 filedir = os.getcwd()+'\\数据' # ...
- 用python按行合并多个txt文件
我今天在网上查一下关于"用python按行合并多个他系统文件"相关的内容,结果找到的是要么按文件合并要么合并两个文件.所以,我自己写了合并代码,希望对大家有所帮助. 在文件路径 h ...
- python将多个txt文件进行上下合并
python将多个txt文件进行上下合并,代码注释已给出 import os import os.pathfiledir = 'txt/frame0' # 填入要合并的文件夹名字 filenames ...
- python如何打开txt文件、并算词频_Python 合并多个TXT文件并统计词频的实现
需求是:针对三篇英文文章进行分析,计算出现次数最多的 10 个单词 逻辑很清晰简单,不算难, 使用 python 读取多个 txt 文件,将文件的内容写入新的 txt 中,然后对新 txt 文件进行词 ...
- Python将两个txt文件按行合并
import os,sys # 按行合并 两个txt文件 # 打开所需要合并的两个txt文件 file1path = '/home/xwt/桌面/PPASR-r1.x.11111/dataset/an ...
- python合并两个txt列_Python 合并多个TXT文件并统计词频的实现
需求是:针对三篇英文文章进行分析,计算出现次数最多的 10 个单词 逻辑很清晰简单,不算难, 使用 python 读取多个 txt 文件,将文件的内容写入新的 txt 中,然后对新 txt 文件进行词 ...
- python将字符串写入txt文件_python将字符串以utf-8格式保存在txt文件中的方法
python将字符串以utf-8格式保存在txt文件中的方法 如下所示: #ltp_data 字符串 写进777.txt 1. def save(filename, contents): fh = o ...
- python读取txt文件写入-python 读取、写入txt文件的示例
写入文件 使用open()函数和write()函数 但是有两种写法,分别是'a'和'w' 'a' 表示写入文件 若无该文件会直接创建一个 如果存在这个文件,会接着已有的内容的后面写入 with ope ...
最新文章
- python之路-day11-迭代器闭包
- Spark _21 _SparkSQL介绍
- 构造器和析构器 - C++快速入门15
- 用MATLAB函数绘制系统的,用matlab绘制odes系统定义的函数
- FFmpeg示例程序合集-批量编译脚本
- 腾讯视频vip会员_腾讯视频如何查看版本号
- 解决:vue项目的页面刷新之 title被重置问题
- 吴恩达 Drive.ai 因经营困难“卖身”苹果
- 玩个锤子,李飞飞夫妇团队的最新研究
- matlab电力系统潮流计算软件matpower_衡真课堂 | 电力系统稳态与暂态分析
- 如何从Java类创建JAR
- php+memcached缓存技术实例
- JAVA实现对PDF文件加密、解密、暴力破解密码功能
- 设计自有芯片将成为新常态?
- 什么是RESTful风格的API设计?
- Java实现 LeetCode 623 在二叉树中增加一行(遍历树)
- 刚刚过去的六一,OPPO Find新机让一些“大孩子”忍不住落泪!
- ARM的商业模式和ARM各种版本号区分
- java版怎么安装mod_java – 如何在Mac OS X上安装mod_jk
- video.js播放rtmp视频
热门文章
- Redis下载安装与配置(windows)
- MCU学习笔记_UPF
- 弯曲时空量子场论的历史与现状 (上)
- MATLAB绘图——加强篇
- 【Spark】Spark的机器学习算法库——Spark MLilb
- Scientific Reports|比较转录组分析揭示了杀菌剂氰烯菌酯对尖孢镰刀菌的抗性调控机制和杀菌活性
- java希尔密码,希尔
- 蓝丝雨第八季高精端实战系列【商业实战DNF刷图】
- ftp服务器文件夹设置,ftp服务器对文件夹设置权限
- 传智播客黑马程序员_新程序员的最佳播客,以及聆听他们的最佳工具