ignore bon-dance

拡張子がないけど忘れたい。

1 def _ignbinarymatch(path):
2     import os
3     if os.path.isfile(path):
4         p, e = os.path.splitext(path)
5         if not e:
6             magic = open(path, "rb").read(4)
7             return magic == "\x7fELF" or magic[:2] == "MZ"
8     return False

“\x7fELF” は linux の ELF、”MZ” は Windows (32ビット版以降)の Portable Executable Format (PE)。

BSD 系や「伝統的 UNIX」の a.out とかも、やろうと思えば出来る。

拡張子で判断出来ないものって、こうしてみると、そんなにないかもな。