рисование в python

Платформа: WinXP SP2, python 2.5.4.3. (активировать распределение)

Кто-нибудь преуспел в написании символов рисования полей в python? Когда я пытаюсь запустить это:

print u'\u2500' print u'\u2501' print u'\u2502' print u'\u2503' print u'\u2504' 

Все советы оценены. Что я делаю не так ? Поддерживает ли python полный юникод? Возможно ли вообще, чтобы эти символы печатались.

Связанный

  • Кодировка по умолчанию для python для stderr?

4 Solutions collect form web for “рисование в python”

Ваша проблема не в Python, а в cmd.exe. Он должен быть настроен на поддержку UTF-8. К сожалению, не очень легко переключить консоль Windows (cmd.exe) на UTF-8 «Python-совместимый» способ.

Вы можете использовать команду (в cmd.exe) для переключения на UTF8:

 chcp 65001 

но Python (2.5) не распознает эту кодировку. В любом случае вам нужно установить правильный шрифт, который поддерживает unicode!

Для рисования я рекомендую использовать старый dos codepage 437, поэтому вам нужно настроить его перед запуском скрипта python:

 chcp 437 

Затем вы можете печатать cp437 закодированные символы непосредственно в stdout или декодировать символы в unicode и печатать unicode, попробуйте этот скрипт:

 # -*- coding: utf-8 -*- for i in range(0xB3, 0xDA): print chr(i).decode('cp437'), # without decoding (see comment by JFSebastian) print ''.join(map(chr, range(0xb3, 0xda))) 

Однако вы можете использовать символы рисования, но вы не можете использовать другие символы, которые могут вам понадобиться из-за ограничения cp437.

Это сильно зависит от того, что поддерживает ваш терминал. Если он использует UTF-8, и если Python может его обнаружить, значит, он работает нормально.

 >>> print u'\u2500' ─ >>> print u'\u2501' ━ >>> print u'\u2502' │ >>> print u'\u2503' ┃ >>> print u'\u2504' ┄ 

Печать их будет напечатана в кодировке по умолчанию, которая, возможно, не является правильной кодировкой для вашего терминала.

Вы пробовали перекодировать их на utf-8?

 print u'\u2500'.encode('utf-8') print u'\u2501'.encode('utf-8') print u'\u2502'.encode('utf-8') print u'\u2503'.encode('utf-8') print u'\u2504'.encode('utf-8') 

Это работает для меня на linux в терминале, который поддерживает данные, закодированные utf-8.

Python поддерживает Unicode. Эти символы можно распечатать.

Например, см. Мой ответ на «Кодировка по умолчанию для python для stderr?» где я показал, как печатать Unicode в sys.stderr (замените его sys.stdout для голых операторов print ).

  • Получение PIL вместо Pillow для Python 2.7 64-бит в Windows
  • Печать PDF-документа с помощью модуля win32print python?
  • Выполнение подпроцесса с Python без открытия командной строки Windows
  • Демон Пастера не будет закрыт, потому что не может прочитать собственный файл pid
  • Установка Pyomo в Windows с помощью Anaconda (Python)
  • Отправка некоторых ключей в неактивное окно с помощью python
  • Как вызвать конкретную версию Python WITHIN для скрипта.py - Windows
  • Как запустить Python из Windows cmd
  • Python - лучший язык программирования в мире.