#!/usr/bin/env python3 import avfs import os, sys # https://stackoverflow.com/questions/898669/how-can-i-detect-if-a-file-is-binary-non-text-in-python textchars = bytearray({7,8,9,10,12,13,27} | set(range(0x20, 0x100)) - {0x7f}) def is_binary(fname): head = avfs.open(fname, 'rb').read(1024) return bool(head.translate(None, textchars)) if __name__ == "__main__": for fname in avfs.find(os.fsencode(sys.argv[1]), {b'.git'}): try: if is_binary(fname): print(fname.decode('utf-8', 'replace')) except: pass