快速按顺序合并txt文件
问题:爬虫爬取的小说有很多章节,如何按照顺序整成一个txt原本使用的是cmd命令
所有txt合并
type *.txt >>C:\Users\yonghu\Desktop\txt\hebing.txt
但是发现虽然按名称排序,但是小说无法按章节顺序显示 本帖最后由 Twilight6 于 2020-5-20 18:18 编辑
import os
start = int(input(r'请输入你要合并的txt文件编号:'))
path = input(r'请输入txt文件夹路径:')
count = int(input(r'请输入你要合并到第几个txt文件?'))
file_name_list = os.listdir(path)
file_num = []
file_name = []
for i in file_name_list:
if '.txt' in i and '、' in i:
number,temp = i.split('、',1)
file_num.append(int(number))
file_name.append(i)
number_list = []
name_list = []
for i in file_name:
number,temp = i.split('、',1)
number_list.append(number)
name_list.append(i)
file_name = sorted(list(zip(number_list,name_list)),key= lambda x:int(x))
with open(path+os.sep+file_name,'a',encoding='utf-8') as f:
while start < count:
with open(path+os.sep+file_name,encoding='utf-8') as f1:
txt = f1.read()
f.write(txt+'\n')
start += 1
效果如图:
os.walk 是
第一章
xxxx
xx
第二章
xxx
xx
......
这样合并吗? Twilight6 发表于 2020-5-20 14:23
是
第一章
xxxx
对的, 熊顺祥 发表于 2020-5-20 14:23
对的,
骚等 我试着写写
#coding=utf-8
import os
#获取目标文件夹的路径
filedir = os.getcwd()+'/yuliao'
#获取当前文件夹中的文件名称列表
filenames=os.listdir(filedir)
#打开当前目录下的result.txt文件,如果没有则创建
f=open('result.txt','w')
#先遍历文件名
for filename in filenames:
filepath = filedir+'/'+filename
#遍历单个文件,读取行数
for line in open(filepath):
f.writelines(line)
// f.write('\n')
#关闭文件
f.close()供参考 青出于蓝 发表于 2020-5-20 14:54
供参考
你这样不行的 W 打开模式直接把原本的文本给覆盖了 熊顺祥 发表于 2020-5-20 14:23
对的,
条件你如果以后需求有变自己改改把 这里只适合 txt 文件名格式是
数值、xxxxx.txt
这样的文件格式,比如:
1、xxxx.txt
2、aaaa.txt
Twilight6 发表于 2020-5-20 15:24
效果如图:
C:\Users\Administrator\Desktop\QQ截图20200520153311.png 熊顺祥 发表于 2020-5-20 15:33
我头像可以临时QQ对话的 你试着点下,图片不是这样发的 Twilight6 发表于 2020-5-20 15:24
效果如图:
效果还差一点啊 熊顺祥 发表于 2020-5-20 15:36
效果还差一点啊
你要的不是这个效果??? 你把1-9加上0就好了 塔利班 发表于 2020-5-20 15:43
你把1-9加上0就好了
鬼才,1000多章,手动太累了 熊顺祥 发表于 2020-5-20 15:48
鬼才,1000多章,手动太累了
1000多张,就写个Python代码0001-1xxx来rename下 青出于蓝 发表于 2020-5-20 14:54
供参考
大佬,filenames=os.listdir(filedir)这句话从文件夹中读出来的不是顺序的, Twilight6 发表于 2020-5-20 15:28
你这样不行的 W 打开模式直接把原本的文本给覆盖了
多谢
页:
[1]