Заменить все символы, кроме буквенно-цифровых символов на всех языках - PullRequest
0 голосов
/ 04 июля 2019

Привет, ребята, я хотел бы спросить, как сохранить специальный алфавит / символ в текстовом файле, используя Python?

Входной текстовый файл:

abcÃ/cdéf@-www

Я хочу удалить символ, но оставить алфавит и специальный алфавит, символ означает ~! @ # $% ^ * () _ + {} <>: "| И т. Д. После того, как я попытался запустить свой код для сделай так, вот что я получил:

Выходной текстовый файл:

abc  cd f  www

Символы были удалены и заменены пробелом, который я хочу, но специальные алфавиты были удалены и заменены пробелом, который я не хочу. Есть ли способ удалить символы, но оставить только специальные алфавиты?

Ожидаемый выходной текстовый файл:

abcà cdéf  www

Вот мой код:

string = open('abc.txt', encoding='utf-8').read()
new_str = re.sub('[^a-zA-Z0-9\n\.]', ' ', string)
open('abc.txt', 'w', encoding='utf-8').write(new_str)

Любая помощь будет оценена, спасибо!

Ответы [ 3 ]

1 голос
/ 04 июля 2019

Замените вторую строку на:

new_str = re.sub('[^\w\s.,;]', ' ', string)
0 голосов
/ 04 июля 2019

Вы можете попробовать это:

import re
string = open('abc.txt', encoding='utf-8').read()
new_str = re.sub('[/~!@#$%^*()_+{}<>:"|-]', ' ', string) # put your characters to replace here
open('abc.txt', 'w', encoding='utf-8').write(new_str)

вывод:

abcà cdéf  www
0 голосов
/ 04 июля 2019

Вы можете указать, чтобы удалить только специальные символы / знаки препинания

puncts = re.escape(string.punctuation)
print re.sub(r'['+ puncts +']', '', your_string)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...