TextMate не выполняет функцию encode () в python - PullRequest
0 голосов
/ 01 мая 2020

друзей.

Я имею дело с проблемой в TextMate, которую я использую для нормального написания кода.
Для моего сценария карты ha sh мне нужно закодировать строку в байты.
В качестве примера, если я напишу:

password = "orange"
bytes_list = list(password.encode())
print(bytes_list)

Ожидаемый результат будет [111, 114, 97, 110, 103, 101], который я получу, если запусту скрипт из IDLE Python и даже если напишу тот же код в моя раковина

Но если я запускаю код в TextMate, результат выдает ['o', 'r', 'a', 'n', 'g', 'e'], поэтому очевидно, что функция encode () в TextMate не работает должным образом.
Самое смешное, что если я выполню код из TextMate в оболочку, он тоже не сработает.

В настройках TextMate кодировка установлена ​​на Unicode - UTF-8 , а пакет Unicode установлен.
Я не смог найти ответа через Google на эту топи c. Может быть, некоторые из вас сталкивались с такой проблемой в прошлом.

Спасибо за любую помощь.

1 Ответ

0 голосов
/ 01 мая 2020

Ваш TextMate использует Python 2.7:

$ python
Python 2.7.16 (default, Dec  3 2019, 07:02:07) 
[GCC 4.2.1 Compatible Apple LLVM 10.0.1 (clang-1001.0.37.14)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> password = "orange"
>>> bytes_list = list(password.encode())
>>> print(bytes_list)
['o', 'r', 'a', 'n', 'g', 'e']
>>>

Python 3 даст ожидаемый результат:

$ python3
Python 3.7.1 (v3.7.1:260ec2c36a, Oct 20 2018, 03:13:28) 
[Clang 6.0 (clang-600.0.57)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> password = "orange"
>>> bytes_list = list(password.encode())
>>> print(bytes_list)
[111, 114, 97, 110, 103, 101]
>>>
...