我用Python编写了一个程序来从HTML文件('input')中的特定元素中获取文本,并将其全部写入另一个文档('output')。该程序通过搜索所需类型的所有元素之前的特定HTML标记,然后编写下一行来工作。这是代码,概括:
input = open(filepath, 'r')
output = open(filepath2, 'w')
collect = 0
onstring = "string to be searched for"
for i in range(numberOfLines):
line = input.readline()
if onstring in line:
collect = 1
elif collect == 1:
output.write(line)
collect = 0
我怀疑它是最佳的,但除了一个挂断之外它的功能正常:对于每个HTML文件我尝试这个,在应该复制的最后一个元素的5到15之间完全切断。似乎没有什么模式可以切断多少,所以我想知道是否有更多经验丰富的Python可以指出一个明显的缺陷。
如果有帮助,我测试了一些东西:
答案 0 :(得分:0)
我通过使用output.close()
正确关闭文件解决了这个问题。
归功于詹姆斯的有用评论。
如果没有,您可能在内存缓冲区中留下了从未写过的内容 写入磁盘。尝试使用
output.close()
。
答案 1 :(得分:0)
扩展我的评论。您已打开文件进行写入,但每次写入操作都不会直接进入磁盘。相反,它被发送到写缓冲区;当缓冲区填满时,缓冲区中的所有写操作都将写入物理磁盘。关闭文件会强制写入缓冲区中的任何写操作。
由于程序在不关闭文件的情况下退出,因此内存缓冲区中的写入内容从未写入磁盘。尝试使用:
output.close()