我正在尝试创建一个脚本,根据常见文件类型检查我的 Downloads 目录中的所有文件,然后告诉我该目录中有多少文件既不是 GIF 也不是JPG 文件。我熟悉基本的Python,但这是我第一次尝试这样的事情,我正在寻找一些帮助或正确方向的一点?
file_sigs = {'\xFF\xD8\xFF':('JPEG','jpg'), '\x47\x49\x46':('GIF','gif')}
def readFile():
filename = r'c:/temp/downloads'
fh = open(filename, 'r')
file_sig = fh.read(3)
print '[*] check_sig() File:',filename #, 'Hash Sig:',
binascii.hexlify(file_sig)
最佳答案
另一种选择是使用 imghdr 库查看文件的 header (它将为您处理 header 检查),如下所示(相应地调整您的根路径):
#!/usr/bin/env python
import os
from os.path import join
import imghdr
stats = {'imgs': 0, 'nonimgs': 0}
for dirpath, dirnames, filenames in os.walk('/home/user/Downloads'):
for name in filenames:
fullPath = os.path.join(dirpath, name)
fileType = imghdr.what(fullPath)
if fileType in ('gif', 'jpeg'):
stats['imgs'] += 1
else:
stats['nonimgs'] += 1
print "File: {0}, type: {1}".format(fullPath, fileType)
print "non images: {0}".format(stats['nonimgs'])
print "images: {0}".format(stats['imgs'])
请参阅imghdr doc了解更多信息。
关于python - 检测常见文件类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25704768/