10

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.

1

1 Answer 1

2

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'
Sign up to request clarification or add additional context in comments.

3 Comments

it doesn't work on OS X Mavericks :(
you need to install libmagic: brew install libmagic
And it fails on unicode filenames :(

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.