I'm looking for file linux command analog made in Python. It should provide information about file type as described in man file. Minimal feature set I'm looking for is to determine if file is raw or text (human-readable) one. Wrapper library will be good suggestion.
I know, I can run file as subprocess and grab it's output to determine file type. But my program is supposed to parse thousands of files and I'm afraid of very long execution time in this case.
-
stackoverflow.com/questions/10937350/… I thinks it is dup for this oneVladimir Ignatev– Vladimir Ignatev2014-02-01 15:18:17 +00:00Commented Feb 1, 2014 at 15:18
Add a comment
|
1 Answer
you need to check the "magic" byte of the file, and I was about to tell you about:
when it occured to me that this question should already have been answered on SO, and it has.
N.B.: I'm not listing pymagic as the other post does, as it did not get any update since 0.1 which looks quite old (even the source website is down).
for OSX:
brew install libmagic
pip install python-magic
python
>>> magic.from_file('test.py')
'Python script, ASCII text executable'
3 Comments
Vladimir Ignatev
it doesn't work on OS X Mavericks :(
zmo
you need to install
libmagic: brew install libmagicVladimir Ignatev
And it fails on unicode filenames :(