提取后文件大小增加?
Posted
技术标签:
【中文标题】提取后文件大小增加?【英文标题】:File size increasing after extraction? 【发布时间】:2016-07-13 17:30:21 【问题描述】:这是一个非常笼统的问题,我什至不知道这是否是该问题的正确社区,如果不告诉我。
我最近有一个 html 文件,从中提取了大约 90 行 HTML 代码(总行数约为 8000 行)。我用一个简单的 Python 脚本做到了这一点。我将输出(缩短的 html 代码)存储到一个文本文件中。现在我很好奇,因为文件大小增加了?在我提取其中的某些部分后,什么会导致文件变大?
之前的文件大小:319.374 字节 之后的文件大小:321.516 字节
这是因为html和txt的文件格式不同吗?
任何帮助或建议表示赞赏!
代码:
import glob
import os
import re
def extractor():
os.chdir(r"F:\Test") # the directory containing my html
for file in glob.iglob("*.html"): # iterates over all files in the directory ending in .html
with open(file, encoding="utf8") as f, open((file.rsplit(".", 1)[0]) + ".txt", "w", encoding="utf8") as out:
contents = f.read()
extract = re.compile(r'StartTag.*?EndTag', re.S)
cut = extract.sub('', contents)
if re.search(extract, contents) is not None:
out.write(cut)
out.close()
extractor()
编辑:我还尝试使用“.html”而不是“.txt”作为输出文件的文件格式。但是,差异仍然存在。
【问题讨论】:
你对这两个文件做了一个简单的diff吗?这应该很清楚地显示出差异。 HTML 通常存储为文本,但 .html 扩展名标记了它的用法。 如果你说提取,你是什么意思?如果可能的话,您介意展示您的一些代码吗? 要明确一点 - 提取 90 行后,较大文件的大小从 ~311KB(319,374 字节)增加到 ~313KB(321,516 字节),对吗? @Prune:这两个文件的差异是负数(Short Output file比input HTML大),所以我不知道如何得到合理的解释? @J.Titus:没错。基本上它是同一个文件,一次包含约 8000 行 HTML 格式的 HTML 代码,提取后约 7910 行,但为 txt 格式 【参考方案1】:此代码不会写入原始 HTML 文件。一定是其他原因导致文件大小增加。
【讨论】:
你是绝对正确的。代码遍历我的目录,打开每个 html 文件,读取每个文件,删除与我的 RegEx 匹配的文档部分并将结果打印到新创建的文本文件中。以上是关于提取后文件大小增加?的主要内容,如果未能解决你的问题,请参考以下文章
磁盘上的图像文件大小(KB)随着Java中动态图像大小的调整(减小大小)而增加
Sybase Jconnect 驱动程序 - 啥是默认提取大小以及增加提取大小是不是可以使我受益