2016-07-04 4 views
1

У меня есть папка с файлом jar, html, css, exe. Как проверить файл?Как получить информацию о файле .jar в python-magic

Я уже запускаю команду «file» на * NIX и используя python-magic. но результат все такой.

test : Zip archive data, at least v1.0 to extract

Как я могу получить конкретную информацию, как test : jar только с помощью с помощью магического числа.

Как мне это сделать?

+0

Все файлы jar являются zip-файлами - вам нужно извлечь содержимое и вручную определить, могут ли они быть поняты Java, или просто надеяться, что расширение имени файла .jar, обозначающее их как файлы jar, равно true. – metatoaster

ответ

0

В то время как не требуется, большинство файлов JAR содержит файл META-INF/MANIFEST.MF, содержащийся в них. Вы можете проверить наличие этого файла, после проверки, если это почтовый файл:

import zipfile 

def zipFileContains(zipFileName, pathName): 
    f = zipfile.ZipFile(zipFileName, "r") 
    result = any(x.startswith(pathName.rstrip("/")) for x in f.namelist()) 
    f.close() 

    return result 

print zipFileContains("test.jar", "META-INF/MANIFEST.MF") 

Однако, это может быть лучше просто проверить, если это почтовый файл, который заканчивается в .jar.

Магия сама по себе не сделает это за вас, так как JAR буквально является только zip-файлом. Подробнее о формате here.

Смежные вопросы