为了账号安全,请及时绑定邮箱和手机立即绑定

如何在python中检查没有扩展名的文件类型?

如何在python中检查没有扩展名的文件类型?

慕容3067478 2019-08-31 16:42:01
我有一个文件夹,这些文件没有扩展名。我该如何检查文件类型?我想检查文件类型并相应地更改文件名。我们假设一个函数filetype(x)返回类似的文件类型png。我想做这个:files = os.listdir(".")for f in files:    os.rename(f, f+filetype(f))我该怎么做呢?
查看完整描述

3 回答

?
慕少森

TA贡献2019条经验 获得超9个赞

有些Python库可以根据文件内容(通常是标题/幻数)识别文件,并且不依赖于文件名或扩展名。


如果您要处理许多不同的文件类型,则可以使用python-magic。这只是一个完善的magic库的Python绑定。这有着良好的声誉和(小代言)在我用它的有限用途,它是坚实的。


还有用于更专业文件类型的库。例如,Python标准库具有imghdr仅针对图像文件类型执行相同操作的模块。


查看完整回答
反对 回复 2019-08-31
?
qq_遁去的一_1

TA贡献1725条经验 获得超7个赞

在Python的魔术库提供您需要的功能。


您可以安装库pip install python-magic并使用它,如下所示:


>>> import magic


>>> magic.from_file('iceland.jpg')

'JPEG image data, JFIF standard 1.01'


>>> magic.from_file('iceland.jpg', mime=True)

'image/jpeg'


>>> magic.from_file('greenland.png')

'PNG image data, 600 x 1000, 8-bit colormap, non-interlaced'


>>> magic.from_file('greenland.png', mime=True)

'image/png'

在这种情况下,Python代码在引擎盖下调用libmagic,它与* NIX file命令使用的库相同。因此,这与基于子进程/ shell的答案完全相同,但没有这种开销。


查看完整回答
反对 回复 2019-08-31
?
www说

TA贡献1775条经验 获得超8个赞

在unix和linux上有一个file猜测文件类型的命令。甚至还有一个Windows端口。


从手册页:


文件测试每个参数以尝试对其进行分类。按顺序执行三组测试:文件系统测试,幻数测试和语言测试。成功的第一个测试会导致打印文件类型。


您需要file使用subprocess模块运行命令,然后解析结果以找出扩展名。


查看完整回答
反对 回复 2019-08-31
  • 3 回答
  • 0 关注
  • 1532 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信