Как передать аргументы скрипту Python с неанглийской локалью - PullRequest
0 голосов
/ 26 ноября 2018

Сценарий:

  • Запуск удаленного блокнота Jupyter
  • Создание строки string с английским и неанглийским (кириллическим) языком.Например, string="this is аргумент"
  • Запустить скрипт Python из ячейки jupyter и передать в качестве аргумента string:
    !python script --arg $string

Проблема isв кодировке:

  • Команда !python script --arg $string сама по себе не запускает скрипт - просто «умирает» на бесконечной фазе выполнения (без исключений и без ошибок. Я полагаю, она имеет ошибки bash, которые не передаются в jupyter, но я не могу проверить, потому что не разрешено вводить кириллические символы в удаленной консоли)

  • Первая проблема была решена передачей кодированной строки вместо необработанной строки:
    string_encoded = string.encode(encoding='utf-8') !python script --arg $string_encoded
    Это работает, , но требует декодирования string в script, что является проблемой для меня - я не могу декодировать строковое представление байтов, которое выглядиткак:
    bthis is \xd0\xb0\xd1\x80\xd0\xb3\xd1\x83\xd0\xbc\xd0\xb5\xd0\xbd\xd1\x82

Контекст:

  • echo $LC_CTYPE: UTF-8
  • sys.default_encoding(): utf-8
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...