Python: как работать с правой одинарной кавычкой при чтении txt - PullRequest
0 голосов
/ 02 августа 2020

Я использую Python, чтобы прочитать текстовый текст, содержащий правую одинарную кавычку: '.

ord("’")
Out[46]: 8217
  1. Как напечатать'? Я обнаружил, что могу набирать только '.
  2. Как читать' как '?
  3. Как я понимаю между этими двумя символами:' - это Юникод, а '- это ASCII? это правильно?

http://www.fileformat.info/info/unicode/char/2019/index.html Я читаю текстовый файл, используя следующий код:

with open(text_path, 'r', encoding='utf-8') as f:
    transcript = f.read()

1 Ответ

0 голосов
/ 02 августа 2020

Вы можете написать специальную функцию кодирования, которая преобразует символ utf-8 в символ ascii, указанный в таблице поиска.

# -*- coding: utf-8 -*-
import io

def encode_file(filepath, conversion_table={}):

    ''' replaces utf-8 chars with specified equivalent ascii char'''

    with io.open(text_path, "r", encoding="utf-8") as f:
        transcript = f.read()

    new_transcript = ""
    for i in transcript:
        new_char = ""
        # append character if ascii
        try:
            new_transcript += i.encode("ascii")
        except UnicodeEncodeError:
            found_char = False
            for c in conversion_table:
                # replace utf-8 with custom ascii equivalent
                if i == unicode(c, encoding="utf-8"):
                    new_transcript += conversion_table[c]
                    found_char = True
            # no conversion found
            if found_char == False:
                new_transcript += "?"
    return new_transcript

text_path = "/path/to/file.txt"
conversion_table = {'ü':'u', 'ô':'o', 'é':'e', 'į':'i'}
print (encode_file(text_path, conversion_table))

Например, с файлом с содержимым my ünicôdé strįng дает my unicode string.

Итак, вы можете добавить '’':'\'' (или любое другое преобразование) к conversion_table, и он сделает замену за вас.

...