Pyconv - Conversor de codificação de caracteres
Publicado por Fernando (última atualização em 22/08/2014)
[ Hits: 3.245 ]
Homepage: https://github.com/phoemur/
Este script foi escrito em Python 3 (necessita python >= 3.2) aos moldes da ferramenta iconv, que serve para converter a codificação de caracteres (UTF-8, ISO8859-1, ASCII etc.) de arquivos texto.
pyconv.py [-h] [-f CODING] [-t CODING] [-w] [-l] [-d]
[filename [filename ...]]
Convert encoding of given files from one encoding to another.
Positional arguments:
filename File to convert
Optional arguments:
-h, --help show this help message and exit
-f CODING, --from_code CODING
Encoding of original text
-t CODING, --to_code CODING
Encoding for output
-w, --write Make change to file in place
-l, --list List all known coded character sets
-d, --detect Detect file encoding
#!/usr/bin/env python3 import os import sys import codecs import argparse from encodings.aliases import aliases parser = argparse.ArgumentParser(description="Convert encoding of given files from one encoding to another.") parser.add_argument("filename", help="File to convert", nargs='*') parser.add_argument("-f", "--from_code", metavar='CODING', help="Encoding of original text") parser.add_argument("-t", "--to_code", metavar='CODING', help="Encoding for output") parser.add_argument("-w", "--write", help="Make change to file in place", action="store_true") parser.add_argument("-l", "--list", help="List all known coded character sets", action="store_true") parser.add_argument("-d", "--detect", help="Detect file encoding", action="store_true") args = parser.parse_args() if args.list: cod_set = set() for k, v in aliases.items(): cod_set.add(k.upper()) cod_set.add(v.upper()) for elem in sorted(list(cod_set)): print(elem) sys.exit(0) if not args.filename: parser.print_help() sys.exit(0) if args.detect: try: import chardet except ImportError: print("Need to install chardet - https://pypi.python.org/pypi/chardet") sys.exit(1) for files in args.filename: try: with open(files, mode='rb') as fd: content = chardet.detect(fd.read()) conf = (content['confidence'] * 100) or '?' enc = content['encoding'] or '?' print("File: {0:<25} Encoding: {1:<15} Confidence:{2:^5}%".format(files, enc, conf)) except OSError: pass sys.exit(0) ORIG_CODING = args.from_code DEST_CODING = args.to_code or sys.stdout.encoding try: sys.stdout = codecs.getwriter(DEST_CODING)(sys.stdout.detach()) except LookupError as err: print(err) sys.exit(1) for files in args.filename: try: with open(files, mode='r', encoding=ORIG_CODING) as fh: content = fh.read() if args.write: with open(files, mode='w', encoding=DEST_CODING) as fh2: fh2.write(content) else: print(content) except Exception as err: print(err) sys.exit(2)
Serialização em Python usando pickle
Criando um rootfs para sistemas embarcados a partir de cópia de um sistema já operando
Mini-dicionário de termos em Python e PyQT 4
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Modernização e Avanço do Linux. (22)
Comportamento estranho dos aplicativos em usb bootavel do linux mint[D... (1)
Recuperando arquivo corrompido no cartão de memoria pelo linux [RESOLV... (5)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta