Tengo archivos de texto de más de 100 MB de tamaño y tienen muchos caracteres especiales. No puedo importarlos a mi DBMS porque PostgreSql no reconoce estos caracteres. ¿Cómo puedo eliminarlos? ¿Qué software hace esto?
Actualmente estoy usando EmEditor pero tengo que encontrar caracteres especiales manualmente y reemplazarlos todos. Hay toneladas de ellos. Más de 10k. Estoy en Windows.
Una secuencia de comandos de python muy simple , o incluso desde una sesión interactiva de terminal/línea de comando , podría leer desde un archivo de entrada y escribir en un archivo de salida mientras cambia la codificación a ASCII; tendría la opción de qué hacer con los caracteres no conformes de :
?
ꀀ
\\ua000
\\N{YI SYLLABLE IT}
donde los nombres están disponibles.El código, en Python 3 sería algo así como, sin probar :
with open('somefilename') as infile: # You may need to add 'rb' to the open command
with open('outname', 'wt') as outfile: # You may need to use 'wb' here
outfile.write(infile.read().encode('ascii', 'backslashreplace'))
El código anterior leerá el archivo de entrada, lo transcodificará y lo escribirá; también podría, para un archivo grande, especificar un tamaño de búfer máximo en el read
método.
Consulte https://docs.python.org/3/howto/unicode.html para obtener más detalles.
Python es gratuito, gratuito y de código abierto, y está disponible para casi todas las plataformas, está preinstalado en la mayoría de las plataformas que no son de Windows .
Instale el editor CudaText .
Texto del complemento:
from cudatext import *
class Command:
def run(self):
s=ed.get_text_all()
for i in range(32):
if not i in [10,13,9]:
s=s.replace(chr(i), '')
ed.set_text_all(s)
jonas stein