Удаление всех символов кавычек из текстовых файлов - PullRequest
0 голосов
/ 15 ноября 2018

Я читаю файл utf8 с обычной кодировкой текста на python. Мне также нужно избавиться от всех цитат в файле. Однако в коде utf8 есть несколько типов кавычек, и я не могу понять, как от них избавиться. Код ниже служит примером того, что я пытался сделать.

def change_things(string, remove):
    for thing in remove:
        string = string.replace(thing, remove[thing])
    return string

, где

remove = {
'\'': '',
'\"': '',
}

К сожалению, этот код удаляет только обычные кавычки, а не левые или правые кавычки. Есть ли способ удалить все такие кавычки, используя формат, аналогичный тому, который я сделал (я признаю, что есть другие, более эффективные способы удаления элементов из строк, но, учитывая общий контекст кода, это имеет больше смысла для моего конкретного проекта )

Ответы [ 3 ]

0 голосов
/ 15 ноября 2018

Существует список кавычек Unicode на https://gist.github.com/goodmami/98b0a6e2237ced0025dd., который должен позволять вам удалять любые типы кавычек.

0 голосов
/ 15 ноября 2018

Есть несколько способов сделать это, регулярное выражение одно:

import re
newstr = re.sub(u'[\u201c\u201d\u2018\u2019]', '', oldstr)

Еще один простой способ сделать это - использовать пакет Unidecode . Это не удаляет кавычки напрямую, но конвертирует их в нейтральные кавычки. Он также преобразует любой не-ASCII символ в его ближайший эквивалент ASCII:

from unidecode import unidecode
newstr = unidecode(oldstr)

Затем вы можете удалить кавычки с вашим кодом.

0 голосов
/ 15 ноября 2018

Вы можете просто ввести эти виды в свой файл и заменить их так же, как любой другой символ.

utf8_quotes = "“”‘’‹›«»"
mystr = 'Text with “quotes”'
mystr.replace('“', '"').replace('”', '"')

Также есть несколько вариантов с одинарными кавычками.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...