Трюки с печатью, которые я хотел бы знать раньше.

Вот приемы печати, которые я хотел бы знать раньше:

  1. Запись в файл без функции записи
  2. Перезапись того, что вы уже напечатали
  3. Использование pprint для печати сложных вложенных списков/дикторов
  4. Печать цветного текста в Python

Запись в файл без функции `write`

Если у нас уже есть скрипт Python, который печатает что-то, и мы хотим, чтобы наш скрипт записывал все, что он печатает, в текстовый файл, мы можем легко сделать это с помощью терминала. Допустим, у нас есть run.py здесь:

запустить.py

print("hello world")
print(123)

Если мы обычно запускаем run.py, используя python run.py, он печатает hello world и 123. Мы можем указать Python напечатать эти выходные данные в текстовый файл:

python run.py > out.txt

Приведенная выше команда работает run.py нормально, но ее вывод записывается в текстовый файл out.txt.

Перезапись того, что вы уже распечатали

После того, как мы напечатали что-то с помощью функции print, мы обычно ничего не можем с этим сделать. Однако что, если я скажу вам, что мы можем перезаписать то, что уже напечатали? Попробуйте запустить это:

print("11111", end="\r")
print("222")

Выход:

22211

Здесь символ \r относится к символу возврата каретки. Если мы установим end="\r" в функции печати, все, что мы будем печатать дальше, начнется с начала предыдущей строки.

Пример запуска

print("11111", end="\r")
print("2222", end="\r")
print("333", end="\r")
print("44", end="\r")
print("5")

Выход:

54321

Использование `pprint` для печати сложных вложенных списков/дикторов

Представьте, что у нас есть словарь с несколькими уровнями вложенных списков и словарей:

d = {
    "apple": [
        {"recipe": "pie", "price":4},
        {"recipe": "juice", "price":5},
        {"recipe": "cake", "price":6},
    ],
    "orange": [
        {"recipe": "pie", "price":14},
        {"recipe": "juice", "price":15},
        {"recipe": "cake", "price":16},
    ],
    "pear": [
        {"recipe": "pie", "price":24},
        {"recipe": "juice", "price":25},
        {"recipe": "cake", "price":26},
    ]
}

Допустим, мы хотим визуализировать этот словарь и просто распечатать его:

{'apple': [{'recipe': 'pie', 'price': 4}, {'recipe': 'juice', 'price': 5}, {'recipe': 'cake', 'price': 6}], 'orange': [{'recipe': 'pie', 'price': 14}, {'recipe': 'juice', 'price': 15}, {'recipe': 'cake', 'price': 16}], 'pear': [{'recipe': 'pie', 'price': 24}, {'recipe': 'juice', 'price': 25}, {'recipe': 'cake', 'price': 26}]}

Мы собираемся получить нечитаемый беспорядок выше. Чтобы правильно визуализировать это, мы можем просто использовать функцию pprint. Обратите внимание, что это встроенная библиотека, и нам не нужно ничего устанавливать с помощью pip или conda.

from pprint import pprint
pprint(d)

И, таким образом, мы получаем следующий вывод:

{'apple': [{'price': 4, 'recipe': 'pie'},
           {'price': 5, 'recipe': 'juice'},
           {'price': 6, 'recipe': 'cake'}],
 'orange': [{'price': 14, 'recipe': 'pie'},
            {'price': 15, 'recipe': 'juice'},
            {'price': 16, 'recipe': 'cake'}],
 'pear': [{'price': 24, 'recipe': 'pie'},
          {'price': 25, 'recipe': 'juice'},
          {'price': 26, 'recipe': 'cake'}]}

Что гораздо более удобочитаемо для человека.

Печать цветного текста в Python

Да, это возможно, но сначала нам нужно установить colorama.

pip install colorama # windows
pip3 install colorama # MacOS

Код для печати цветного текста:

from colorama import Fore
print(Fore.RED + "hello world")
print(Fore.BLUE + "hello world")
print(Fore.GREEN + "hello world")

Выход:

Мы также можем до некоторой степени возиться со стилем, а также с фоном материала, который мы печатаем, но я оставлю это вам, чтобы изучить документацию Colorama.

Заключение

Если эта статья была полезной и вы хотите поддержать меня, подумайте о том, чтобы подписаться на членство в Medium — это стоит 5 долларов в месяц, и вы получаете неограниченный доступ к статьям на Medium. Если вы зарегистрируетесь по моей ссылке ниже, я получу небольшую комиссию без каких-либо дополнительных затрат для вас.

Зарегистрируйтесь, используя мою ссылку здесь, чтобы читать неограниченное количество статей на Medium.

Я пишу статьи по программированию (раз в 1–2 дня), которые, вероятно, помогли бы мне в более молодом возрасте ускорить процесс обучения. Присоединяйтесь к моему списку адресов электронной почты, чтобы получать уведомления о каждой публикации.



Дополнительные материалы на PlainEnglish.io. Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Подпишитесь на нас в Twitter и LinkedIn. Присоединяйтесь к нашему сообществу Discord.