我的代码将实际文件类型与扩展名进行比较并返回结果。我不得不调整它以返回结果并重用其他函数,但我被卡住了,我不知道为什么我的脚本只将一个项目附加到列表中,并且不会产生任何错误。我会得到一个类似['asd', 'fgh', etc..]
的结果。我做错了什么?你知道吗
import os, sys
sys.argv.append("C:/temp/ver_files/")
dirct = set(os.listdir(sys.argv[1]))
file_sigs = {
b'\xff\xd8\xff': (
'.jpg',
'.jpeg',
'.JPG',
'.JPEG'
),
b'\x47\x49\x46': (
'.gif',
'.GIF'
),
b'\x89\x50\x4e': (
'.png',
'.PNG'
),
b'\x50\x4b\x03': (
'.docx',
'.DOCX'
),
b'\x42\x4d': (
'.bmp',
'.BMP'
)
}
for i in dirct:
inf = []
file = open(sys.argv[1]+i, "rb")
sig = file.read(3)
file.close()
ext = os.path.splitext(i)[1]
if len(inf) >= 0:
if sig in file_sigs.keys():
if ext in file_sigs[sig]:
inf.append('Matching extension: '+ ext+ ' for file: '+i)
else:
inf.append('No matching extension for file: '+i+" it's a "+ file_sigs[sig][0]+ ' file')
else:
inf.append('No such signature in database')
print(inf)
目前没有回答
相关问题 更多 >
编程相关推荐