熊顺祥 发表于 2020-5-20 14:15:09

快速按顺序合并txt文件

问题:爬虫爬取的小说有很多章节,如何按照顺序整成一个txt

原本使用的是cmd命令
所有txt合并
type *.txt >>C:\Users\yonghu\Desktop\txt\hebing.txt
但是发现虽然按名称排序,但是小说无法按章节顺序显示

Twilight6 发表于 2020-5-20 14:15:10

本帖最后由 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
效果如图:

良药半你一声 发表于 2020-5-20 14:21:51

os.walk

Twilight6 发表于 2020-5-20 14:23:28


第一章
xxxx
xx
第二章
xxx
xx
......
这样合并吗?

熊顺祥 发表于 2020-5-20 14:23:50

Twilight6 发表于 2020-5-20 14:23

第一章
xxxx


对的,

Twilight6 发表于 2020-5-20 14:24:18

熊顺祥 发表于 2020-5-20 14:23
对的,

骚等 我试着写写

青出于蓝 发表于 2020-5-20 14:54:30


#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()供参考

Twilight6 发表于 2020-5-20 15:28:59

青出于蓝 发表于 2020-5-20 14:54
供参考

你这样不行的 W 打开模式直接把原本的文本给覆盖了

Twilight6 发表于 2020-5-20 15:33:31

熊顺祥 发表于 2020-5-20 14:23
对的,

条件你如果以后需求有变自己改改把 这里只适合 txt 文件名格式是
数值、xxxxx.txt
这样的文件格式,比如:
1、xxxx.txt
2、aaaa.txt

熊顺祥 发表于 2020-5-20 15:33:40

Twilight6 发表于 2020-5-20 15:24
效果如图:

C:\Users\Administrator\Desktop\QQ截图20200520153311.png

Twilight6 发表于 2020-5-20 15:34:39

熊顺祥 发表于 2020-5-20 15:33


我头像可以临时QQ对话的 你试着点下,图片不是这样发的

熊顺祥 发表于 2020-5-20 15:36:05

Twilight6 发表于 2020-5-20 15:24
效果如图:

效果还差一点啊

Twilight6 发表于 2020-5-20 15:37:09

熊顺祥 发表于 2020-5-20 15:36
效果还差一点啊

你要的不是这个效果???

塔利班 发表于 2020-5-20 15:43:29

你把1-9加上0就好了

熊顺祥 发表于 2020-5-20 15:48:01

塔利班 发表于 2020-5-20 15:43
你把1-9加上0就好了

鬼才,1000多章,手动太累了

塔利班 发表于 2020-5-20 15:51:09

熊顺祥 发表于 2020-5-20 15:48
鬼才,1000多章,手动太累了

1000多张,就写个Python代码0001-1xxx来rename下

熊顺祥 发表于 2020-5-20 15:51:23

青出于蓝 发表于 2020-5-20 14:54
供参考

大佬,filenames=os.listdir(filedir)这句话从文件夹中读出来的不是顺序的,

青出于蓝 发表于 2020-5-20 18:05:04

Twilight6 发表于 2020-5-20 15:28
你这样不行的 W 打开模式直接把原本的文本给覆盖了

多谢
页: [1]
查看完整版本: 快速按顺序合并txt文件