У меня есть текстовые файлы размером более 100 МБ, и в них много специальных символов. Я не могу импортировать их в свою СУБД, потому что PostgreSql не распознает эти символы. Как я могу удалить их? Какой софт это делает?
В настоящее время я использую EmEditor, но мне нужно найти специальные символы вручную и заменить все. Их тонны. Более 10к. Я на Windows.
Очень простой скрипт Python или даже интерактивный сеанс терминала/командной строки может читать из входного файла и записывать в выходной файл при изменении кодировки на ASCII — у вас будет выбор, что делать с несоответствующими символами :
?
ꀀ
\\ua000
\\N{YI SYLLABLE IT}
где доступны имена.Код в Python 3 будет чем-то вроде непроверенного :
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'))
Приведенный выше код будет читать входной файл, перекодировать его и записывать - вы также можете указать для большого файла максимальный размер буфера в read
методе.
Подробнее см. https://docs.python.org/3/howto/unicode.html .
Python является бесплатным, бесплатным и открытым исходным кодом и доступен практически для каждой платформы, он предустановлен на большинстве платформ, отличных от Windows .
Установите редактор CudaText .
Текст плагина:
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)
Йонас Штейн