I just ported python-magic to python3.
Of course, python got its very own mimetypes, but there are reasons to rely on libmagic.
If you want to use magic with python3:
aptitude install libmagic-dev
apt-get source file
wget http://p.carnivore.it/2v6Uwg?download -O /dev/stdout | patch -p1
cd file-5.03/python/
/opt/dionaea/bin/python3 setup.py install
Afterwards, useage is compatible to python2:
import magic
import io
ms = magic.open(magic.MAGIC_NONE)
ms.load()
ms.file("/opt/dionaea/bin/dionaea")
# 'ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, not stripped'
f = io.open("/opt/dionaea/bin/dionaea", "rb")
b = f.read(1024)
ms.buffer(b)
# 'ELF 64-bit LSB executable, x86-64, version 1 (SYSV)'
ms.setflags(magic.MAGIC_MIME)
# 0
ms.buffer(b)
# 'application/x-executable; charset=binary'
ms.file("/opt/dionaea/bin/dionaea")
# 'application/x-executable; charset=binary'