Каковы основания для ваших убеждений, что файл (1) является латинским-1 (2) может содержать фрагменты в другой кодировке? Насколько большой файл? Что такое «обычная библиотека обнаружения»? Рассматривали ли вы возможность того, что это может быть кодировка Windows, например cp1252?
Некоторые общие диагностики:
# preliminaries
text = open('the_file.txt', 'rb').read()
print len(text), "bytes in file"
# How many non-ASCII bytes?
print sum(1 for c in text if c > '\x7f'), "non-ASCII bytes"
# Will it decode as UTF-8 OK?
try:
junk = text.decode('utf8')
print "utf8 decode OK"
except UnicodeDecodeError, e:
print e
# Runs of more than one non-ASCII byte are somewhat rare in single-byte encodings
# of languages written in a Latin script ...
import re
runs = re.findall(r'[\x80-\xff]+', text)
nruns = len(runs)
print nruns, "runs of non-ASCII bytes"
if nruns:
avg_rlen = sum(len(run) for run in runs) / float(nruns)
print "average run length: %.2f bytes" % avg_rlen
# then if indicated you could write some code to display runs in context ...