Zacharia2 / SuperMemo-Toolkit

SuperMemo 增强工具(CLI命令行)。包含图链整理、EPUB图书转换导入、Latex公式转图片等。
GNU General Public License v2.0
25 stars 3 forks source link

提高html文件判断的准确度 #13

Closed Zacharia2 closed 12 months ago

Zacharia2 commented 1 year ago

https://blog.51cto.com/u_16213330/7617727

Zacharia2 commented 1 year ago

要判断一个文件是否是HTML文件,您可以使用Python中的一些库和技术来进行通用的检测。以下是一种通用的方法:

  1. 使用Python的 magic 库来检测文件类型。magic 库可以根据文件的内容和特征自动识别文件类型。您可以使用以下代码来判断一个文件是否是HTML文件:
import magic

def is_html_file(file_path):
    mime = magic.Magic(mime=True)
    file_type = mime.from_file(file_path)
    return file_type == 'text/html'

这段代码将通过文件的 mime 类型来判断文件是否是HTML文件。如果文件是HTML文件,则返回 True,否则返回 False

请注意,这种方法依赖于文件内容的特征,因此并非百分之百准确。如果文件的扩展名或内容被修改,结果可能不准确。

  1. 检查文件的扩展名。您可以通过检查文件的扩展名来初步判断文件类型。HTML文件的典型扩展名是 .html.htm。可以使用以下代码来判断文件的扩展名是否为HTML文件:
import os

def is_html_file(file_path):
    file_ext = os.path.splitext(file_path)[1]
    return file_ext.lower() in ['.html', '.htm']

该代码将获取文件的扩展名,并将其转换为小写字母,然后与HTML文件的典型扩展名进行比较。如果扩展名匹配,则返回 True,否则返回 False

这种方法仅基于文件扩展名,因此可能会受到文件名称的误导。因此,它不像第一种方法那样可靠。

您可以根据您的具体需求选择适合的方法,并结合使用以提高准确性。

Zacharia2 commented 1 year ago

不支持中文名,可通过 from_buffer() 读取解决

import magic

print(magic.from_buffer(open('测试图片.jpg', 'rb').read(2048), mime=True))
# image/jpeg