如何更改文件类型
日常中常见的文件类型有word文档、excel文件、纯文本文件、图片文件和视频文件,至于那些我们不知道的文件类型甚至更多。面对这么多种类的文件,我们该如何判断它的类型呢?简单点说是看文件名后缀,比如以.txt结尾的文件是纯文本文件,这是一个比较实用的办法。但是,有些人就是喜欢不按套路出牌,他们会改文件的后缀,比如将.txt的后缀改成.mp4,这个时候再用后缀判断就不正确了,对于更改文件后缀的情况可以使用文件头的内容判断文件类型。今天,我们不考虑改后缀的情况,只是让程序自己判断一个文件的类型。在python中有一个mimetypes模块可以简单判断一个文件的类型,其中有两个主要的函数,guess_type函数用来判断文件的类型,guess_extension用来判断文件的后缀。实例如下:”””判断文件类型使用mimetypes模块猜测文件类型与猜测扩展名1)mimetypes.guess_type(…)2)mimetype = mimetypes.MimeTypes(…) mimetype.guess_type(…)3)mimetypes.guess_extension(…)the statistics of this file:lines(count) understand_level(h/m/l) classes(count) functions(count) fields(count)000000000059 ———————-l 00000000000000 0000000000000000 ~~~~~~~~~~~~~”””import timeimport mimetypesimport filetype__author__ = ‘与C同行’if __name__ == ‘__main__’: print(f’当前时间:{time.ctime()}’) print() print(‘使用函数判断文件类型’) txt_filename = ‘./material/test.txt’ video_filename = ‘./material/movie.mp4’ audio_filename = ‘./material/horse.ogg’ fake_mp4_filename = ‘./material/test.mp4′ txt_type = mimetypes.guess_type(txt_filename) video_type = mimetypes.guess_type(video_filename) audio_type = mimetypes.guess_type(audio_filename) fake_mp4_type = mimetypes.guess_type(fake_mp4_filename) print(f’test.txt类型:{txt_type}’) print(f’movie.mp4类型:{video_type}’) print(f’horse.ogg类型:{audio_type}’) print(f’test.mp4类型:{fake_mp4_type}’) # 添加类型 mimetypes.add_type(‘audio/ogg’, ‘.ogg’) audio_type = mimetypes.guess_type(audio_filename) print(f’horse.ogg类型:{audio_type}’) print() print(‘使用MimeTypes断文件类型’) mimetype = mimetypes.MimeTypes() txt_type_o = mimetypes.guess_type(txt_filename) video_type_o = mimetypes.guess_type(video_filename) audio_type_o = mimetypes.guess_type(audio_filename) print(f’test.txt类型:{txt_type_o}’) print(f’movie.mp4类型:{video_type_o}’) print(f’horse.ogg类型:{audio_type_o}’) print() print(‘使用guess_extension()猜测扩展’) txt_ex = mimetypes.guess_extension(‘text/plain’) video_ex = mimetypes.guess_extension(‘video/mp4′) print(f’txt_ex扩展名:{txt_ex}’) print(f’video_ex扩展名:{video_ex}’)在…/material文件夹下面有四个文件,horse.ogg文件是一个音频文件,movie.mp4文件是一个视频文件,test.txt文件是一个纯文本文件,test.mp4文件是test.txt改后缀之后的文件。guess_type的返回值是文件类型和编码的元组。结果如下:由于.ogg后缀在mimetypes模块中没有映射,所以想判断.ogg文件就要添加一个映射。对判断改后缀的文件类型感兴趣的人可以先寻找答案,这次没有涉及,有机会下次讲讲。