获取文件名称列表只获取了一部分
之前在站里获取了一份爬虫的代码,爬下来一部小说后尝试将其合并,然而合并的章节却是从1000章开始,前999章不知为何获取文件名列表里没有。这是文件操作的哪里出了问题呢??
#合并一个文件夹下的多个txt文件
#coding=utf-8
import os
#获取目标文件夹的路径
filedir = os.getcwd()
#获取当前文件夹中的文件名称列表
filenames=os.listdir(filedir)
#打开当前目录下的result.txt文件,如果没有则创建
f=open('result.txt','w')
i=0
#先遍历文件名
for filename in filenames:
print(filename)
i+=1
print(i)
if i>0:
filepath = filedir+'\\'+filename
print(filepath)
#遍历单个文件,读取行数
for line in open(filepath,encoding='gbk', errors='ignore'):
# print(str(line))
f.writelines(line)
# f.write('\n')
#关闭文件
输出的结果如下(部分):合并,有问题.py
1
E:\新建文件夹\python练习\新建文件夹\合并,有问题.py
封推感言.txt
2
E:\新建文件夹\python练习\新建文件夹\封推感言.txt
更新通知!!!.txt
3
E:\新建文件夹\python练习\新建文件夹\更新通知!!!.txt
第1000章 雪心毒.txt
4
E:\新建文件夹\python练习\新建文件夹\第1000章 雪心毒.txt
第1001章 全部吞噬.txt
5
E:\新建文件夹\python练习\新建文件夹\第1001章 全部吞噬.txt
第1002章 悬空山十大天骄.txt
6
E:\新建文件夹\python练习\新建文件夹\第1002章 悬空山十大天骄.txt
第1003章 压制凌云空.txt
7
E:\新建文件夹\python练习\新建文件夹\第1003章 压制凌云空.txt
第1004章 初露实力.txt
8
E:\新建文件夹\python练习\新建文件夹\第1004章 初露实力.txt
第1005章 又一个天骄.txt
9
……
程序是能成功合并输出的,问题在于所有的txt文件都是同样地放在同一个文件夹下的,格式也是相同的,为何前999章不会被合并进来呢?
我尝试着在filenames=os.listdir(filedir)之后print了filenames,发现这里面确实和合并顺序一样,没有前999章。
因为你 open 使用的是 w ,导致是新建个空白文件覆盖了原先的文件内容
你如果要追加写入应该将 open 的模式改成 a
参考代码:#合并一个文件夹下的多个txt文件
#coding=utf-8
import os
#获取目标文件夹的路径
filedir = os.getcwd()
#获取当前文件夹中的文件名称列表
filenames=os.listdir(filedir)
#打开当前目录下的result.txt文件,如果没有则创建
f=open('result.txt','a')
i=0
#先遍历文件名
for filename in filenames:
print(filename)
i+=1
print(i)
if i>0:
filepath = filedir+'\\'+filename
print(filepath)
#遍历单个文件,读取行数
for line in open(filepath,encoding='gbk', errors='ignore'):
# print(str(line))
f.writelines(line)
# f.write('\n')
#关闭文件
Twilight6 发表于 2020-8-24 09:28
因为你 open 使用的是 w ,导致是新建个空白文件覆盖了原先的文件内容
你如果要追加写入应该将 open...
不是的,解决了,是、排序的问题,文件第1000章这些比第1章排序要前。解决方法 用一个natsort排序再输出就好了。
页:
[1]