Трюки с печатью, которые я хотел бы знать раньше.
Вот приемы печати, которые я хотел бы знать раньше:
- Запись в файл без функции записи
- Перезапись того, что вы уже напечатали
- Использование
pprint
для печати сложных вложенных списков/дикторов - Печать цветного текста в 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. Если вы зарегистрируетесь по моей ссылке ниже, я получу небольшую комиссию без каких-либо дополнительных затрат для вас.
Я пишу статьи по программированию (раз в 1–2 дня), которые, вероятно, помогли бы мне в более молодом возрасте ускорить процесс обучения. Присоединяйтесь к моему списку адресов электронной почты, чтобы получать уведомления о каждой публикации.
Дополнительные материалы на PlainEnglish.io. Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Подпишитесь на нас в Twitter и LinkedIn. Присоединяйтесь к нашему сообществу Discord.