Как читать символы кириллицы c в SYLK (для MS Excel .the slk)? Py3.8 - PullRequest
0 голосов
/ 19 апреля 2020

Необходимо прочитать файл в формате «slk», созданный в Excel. Попробуйте

    def main():
    _filename = r'c:\Work\_import.slk'
    print(f'Имя файла: {_filename}')

    with open(_filename, 'r',encoding='ascii') as _fileR:
        FileDataStr = _fileR.read()
        for _line in FileDataStr.splitlines():
            if not _line.upper().find('NAMEINLIST') == -1:
                print(_line)
                print(_line.encode('utf-8-sig'))
                print(_line.encode('cp1251'))
                print(_line.encode('cp1252'))
                print(_line.encode('KOI8-U'))

#  ------------------------------------------------------------------------
if __name__ == "__main__":
    main()

Нет проблем с англичанами, но есть кириллы c (((*

This

C; Y2; N; K ".NameInList 'NAENAiNHiNCiNSNAo NHaNAaNBiNBiNCuNDo NDnNCiNAoNsNBoNHaNBiNAeNCeNCiNCa NAeNK * "1022 * 1NDN" "

; это

* \ N \ N \ bb * xf \ x1bNAE \ x1bNAi \ x1bNHi \ x1bNCi \ x1bNs \ x1bNAo \ x1bNHa \ x1bNAa \ x1bNBi \ x1bNBi \ x1bNCu \ x1bNDo \ x1bNDn \ x1bNCi \ x1bNAo \ x1bNs \ x1bNBo \ x1bNHa \ x1bNBi \ x1bNAe \ x1bNCe \ x1bNCi \ x1bNCa \ x1bNAe \ x1bNK c 1 \ x1bNDN \ '"'

Как перевести его на .NameInList 'Импорт данных сотрудников из 1С'

1 Ответ

0 голосов
/ 21 апреля 2020

----------------------------------------------- -------------------------

# Словарь для распознования SLK
    a_dict = {"\\x1bNAA": "А", "\\x1bNBA": "Б", "\\x1bNCA": "В", "\\x1bNDA": "Г"
        , "\\x1bNHA": "Д", "\\x1bNJA": "Е", "\\x1bNH ": "Ё", "\\x1bNa": "Ж", "\\x1bNKC": "З"
        , "\\x1bNAE": "И", "\\x1bNBE": "Й", "\\x1bNCE": "К", "\\x1bNHE": "Л"
        , "\\x1bNAI": "М", "\\x1bNBI": "Н", "\\x1bNCI": "О", "\\x1bNHI": "П", "\\x1bNb": "Р"
        , "\\x1bNDN": "С", "\\x1bNAO": "Т", "\\x1bNBO": "У", "\\x1bNCO": "Ф"
        , "\\x1bNDO": "Х", "\\x1bNHO": "Ц", "\\x1b-7": "Ч", "\\x1bNi": "Ш", "\\x1bNAU": "Щ", "\\x1bNBU": "Ъ"
        , "\\x1bNCU": "Ы", "\\x1bNHU": "Ь", "\\x1b-=": "Э", "\\x1bNl": "Ю", "\\x1bN{": "Я"
        , "\\x1bNAa": "а", "\\x1bNBa": "б", "\\x1bNCa": "в", "\\x1bNDa": "г", "\\x1bNHa": "д", "\\x1bNJa": "е",
              "\\x1b+8": "ё", "\\x1bNq": "ж", "\\x1bNKc": "з"
        , "\\x1bNAe": "и", "\\x1bNBe": "й", "\\x1bNCe": "к", "\\x1bNHe": "л", "\\x1bNAi": "м", "\\x1bNBi": "н",
              "\\x1bNCi": "о", "\\x1bNHi": "п", "\\x1bNs": "р"
        , "\\x1bNDn": "с", "\\x1bNAo": "т", "\\x1bNBo": "у", "\\x1bNCo": "ф", "\\x1bNDo": "х", "\\x1bNHo": "ц",
              "\\x1b/7": "ч", "\\x1bNy": "ш", "\\x1bNAu": "щ"
        , "\\x1bNBu": "ъ", "\\x1bNCu": "ы", "\\x1bNHu": "ь", "\\x1b/=": "э", "\\x1bN|": "ю", "\\x1bNHy": "я"
              }


for key in a_dict:  # через словарь разбираем текст
   _l1 = _l1.replace(key, a_dict[key])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...