Python

2012-04-21 12 views
5

Python'un mimetek modülü daha iyi, daha doğru mim tipi algılama özelliği özellikle doğru değildir ve sonuçlarını dosya uzantısına dayandırır. Daha doğru bir sonuç elde etmek Aklıma gelen tek yolu böylece subprocess.Popen ile Unix file komutu çağırmaktır;Python

import subprocess 
mimetype = subprocess.Popen(['file', '/path/to/file', '--mime-type', '-b'], 
    stdout=subprocess.PIPE).stdout.read().strip() 

Bu zarafetsiz hissediyor.file'u aramak zorunda kalmadan, bunu yapmanın daha iyi bir yolu var mı ama yine de aynı doğruluk seviyesine ulaşıyor?

cevap

7

Sen deneyebilirsiniz

import subprocess 
mimeType = subprocess.check_output(['file', '-ib', '/path/to/file']).strip() 

Daha şık olmayabilir ama daha kısa ve daha kolay biraz okumak ve her zaman tercih söyledi.

+0

Bu, aynı MIME kimlik kodunu "dosya" olarak kullanır. –

+2

Doğru - ama daha zarif, istediği bu. :) – Mads