Python获取文件的真实格式并修正扩展名

    xiaoxiao2022-07-03  136

    《深度学习-如何提高数据集质量》

    爬虫爬下来的图片有时候,图片是JPEG格式的,但使用却是PNG的扩展名,也就是真实格式和扩展名对应不上。

    ~/Desktop$ file 6b35e69d93b085480c7f30ba6eda2eae.png 6b35e69d93b085480c7f30ba6eda2eae.png: JPEG image data, JFIF standard 1.01, resolution (DPI), density 72x72, segment length 16, baseline, precision 8, 1024x683, frames 3

    看到了啊?通过linux file命令查看文件的时候,实际是JPEG格式的,但扩展名却是PNG的。下面我的工作就是给错误的文件,替换正确的扩展名。 感谢Python有提供这些功能的包,分别为filetype和python-magic这两个安装一个就可以,代码我使用的是filetype,终于那个效率高我而已不知道,python-magic 部分别我注释掉了,发现我使用的这个功能完全相同。 安装方式:

    pip install python-magic 或者 pip install filetype

    下面就是代码了:

    import magic import os import filetype DirList = [ '/home/king/PycharmProjects/nsfw_data_scrapper/raw_data/drawings', '/home/king/PycharmProjects/nsfw_data_scrapper/raw_data/hentai', '/home/king/PycharmProjects/nsfw_data_scrapper/raw_data/neutral', '/home/king/PycharmProjects/nsfw_data_scrapper/raw_data/porn', '/home/king/PycharmProjects/nsfw_data_scrapper/raw_data/sexy' ] for path in DirList: for file in os.listdir(path): pic_file = os.path.join(path, file) if pic_file.endswith('jpeg') or pic_file.endswith('png'): # a = magic.from_file(pic_file,mime=True ) # print(pic_file, a) kind = filetype.guess(pic_file) getExt = str(kind.mime).split('/')[1] #print(pic_file, kind.extension, kind.mime) mainName, ext = os.path.splitext(pic_file) ext = ext[1:] if ext != getExt: # if(getExt != 'jpeg' and getExt != 'png'): # os.remove(pic_file) print(pic_file, getExt) os.renames(pic_file, mainName + "." + getExt)
    最新回复(0)