我正在寻找file用Python制造的linux命令模拟。它应该提供有关文件类型的信息,如中所述man file。我正在寻找的最小功能集是确定文件是原始文件还是文本(人类可读)文件。包装库将是一个不错的建议。我知道,我可以file作为子进程运行并获取其输出以确定文件类型。但是我的程序应该解析成千上万个文件,在这种情况下,我担心执行时间会很长。
我希望能够打开一个给定的文件,并看到"这是一个MP4文件",或"这是一个webm"文件,甚至"这似乎不是一个有效的视频"
我在https://code.google.com/p/pyffmpeg/上看到了FFmpeg包装器,但我没有看到任何类型的get_codec函数.
思考?
任务:
我正在使用存储在外部USB磁盘上的4 TB数据/文件:图像,html,视频,可执行文件等.
我想使用以下模式索引sqlite3数据库中的所有这些文件:
path TEXT, mimetype TEXT, filetype TEXT, size INT
Run Code Online (Sandbox Code Playgroud)
至今:
我通过挂载目录递归地执行os.walk,file使用python的子进程执行linux 命令,并使用os.path.getsize()获取大小.最后将结果写入数据库,存储在我的计算机上 - 当然,usb安装了-o ro.顺便说一下,没有穿线
你可以在这里看到完整的代码http://hub.darcs.net/ampoffcom/smtid/browse/smtid.py
问题:
代码真的很慢.我意识到,直接结构越深,代码就越慢.我想,os.walk可能是个问题.
问题: