Testando se um aquivo é ASCII

Surgiu a necessidade de verificar se um arquivo tem apenas caracteres ASCII.

O código abaixo resolve esta problema. Para usá-lo é muito simples: basta passar o nome do arquivo que deseja testar.

  • teste_ascii.py README.md
  • teste_ascii.py graph.m
#!/usr/bin/env python3
# Arquivo: teste_ascii.py
import sys

if len(sys.argv) != 2:
    print(f"Uso: {sys.argv[0]} ARQUIVO", file=sys.stderr)
    sys.exit(1)

# Abre o arquivo passado na linha de comando em modo binário
# e lê o conteúdo do arquivo.
fp = open(sys.argv[1], 'rb')
x = fp.read()

# Decodifica o conteúdo do arquivo para ASCII.
# Se houver algum caractere que não é ascii uma exceção será
# lançada.
x.decode('ascii')