拡張子がないけど忘れたい。
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 とかも、やろうと思えば出来る。
拡張子で判断出来ないものって、こうしてみると、そんなにないかもな。