Библиотека Python разработчика | Книги по питону
Погружение в CPython и архитектуру. Разбираем неочевидное поведение (GIL, Memory), Best Practices (SOLID, DDD) и тонкости Django/FastAPI. Решаем задачи с подвохом и оптимизируем алгоритмы. 🐍 По всем вопросам @evgenycarter РКН clck.ru/3Ko7Hq
显示更多📈 Telegram 频道 Библиотека Python разработчика | Книги по питону 的分析概览
频道 Библиотека Python разработчика | Книги по питону (@bookpython) 俄语 语言赛道中的 是活跃参与者。目前社区聚集了 17 967 名订阅者,在 技术与应用 类别中位列第 7 242,并在 俄罗斯 地区排名第 36 580 位。
📊 受众指标与增长动态
自 невідомо 创建以来,项目保持高速增长,吸引了 17 967 名订阅者。
根据 02 十一月, 2026 的最新数据,频道保持稳定运转。过去 30 天订阅人数变化为 -89,过去 24 小时变化为 -1,整体触达仍然可观。
- 认证状态: 未认证
- 互动率 (ER): 平均受众互动率为 5.58%。内容发布后 24 小时内通常能获得 2.74% 的反应,占订阅者总量。
- 帖子覆盖: 每篇帖子平均可获得 1 003 次浏览,首日通常累积 492 次浏览。
- 互动与反馈: 受众积极参与,单帖平均反应数为 4。
- 主题关注点: 内容集中在 numbers, yield, модуль, none, декоратор 等核心主题上。
📝 描述与内容策略
作者将该频道定位为表达主观观点的平台:
“Погружение в CPython и архитектуру. Разбираем неочевидное поведение (GIL, Memory), Best Practices (SOLID, DDD) и тонкости Django/FastAPI. Решаем задачи с подвохом и оптимизируем алгоритмы. 🐍
По всем вопросам @evgenycarter
РКН clck.ru/3Ko7Hq”
凭借高频更新(最新数据采集于 03 十一月, 2026),频道始终保持新鲜度与高覆盖。分析显示受众积极互动,使其成为 技术与应用 类别中的关键影响点。
import os
for filename in os.listdir('.'):
if filename.endswith('.txt'):
os.rename(filename, f'new_{filename}')
Этот код выбирает все файлы с расширением .txt в текущей директории и добавляет к их именам префикс "new_". В зависимости от ваших требований вы можете модифицировать условия отбора файлов и способ формирования новых имен.
Продвинутое групповое переименование
Удаление префиксов и предотвращение конфликтов имен файлов
Если вы хотите удалить префикс (например "CHEESE_") из имени файла и при этом не вызвать конфликт перезаписи файлов, используйте следующий код:
import os
for filename in os.listdir('.'):
if filename.startswith('CHEESE_'):
new_filename = filename.replace('CHEESE_', '', 1)
if not os.path.exists(new_filename):
os.rename(filename, new_filename)
Подобный скрипт удаляет префикс "CHEESE_" из имени файла (однообразная замена), затем проверяет наличие файла с таким новым именем и затем переименовывает оригинальный файл.
Использование регулярных выражений для обработки сложных шаблонов имен
Для работы со сложными шаблонами имен файлов будет полезен модуль re:
import os
import re
pattern = re.compile(r'^(CHEESE_)(.*)')
for filename in os.listdir('.'):
match = pattern.match(filename)
if match:
new_filename = match.group(2)
if not os.path.exists(new_filename):
os.rename(filename, new_filename)
Этот код применяет регулярные выражения для отбора нужных частей имени файла, а затем проверяет, не создавалось ли раньше файла с таким новым именем, чтобы избежать дублирования.
Рекурсивное переименование файлов с помощью os.walk
Чтобы переименовать файлы во всех поддиректориях, используйте функцию os.walk:
import os
for root, dirs, files in os.walk('.'):
for filename in files:
if 'CHEESE_' in filename:
new_filename = filename.replace('CHEESE_', '')
original_path = os.path.join(root, filename)
new_path = os.path.join(root, new_filename)
if not os.path.exists(new_path):
os.rename(original_path, new_path)
Этот сниппет обходит все поддиректории, переименовывая файлы и сохраняя историю их предыдущих расположений.
Профессиональные рекомендации и подготовка к будущему
Будьте готовы к возможным ошибкам
Никогда не забывайте обрабатывать возможные ошибки и исключительные ситуации:
try:
os.rename(original_path, new_path)
except OSError as e:
print(f"Error: {e}")
Такой подход поможет вам избежать непредсказуемых проблем и ситуаций, когда файлы могут быть заняты другими процессами.
Современные подходы: применение модуля pathlib
Для эффективного решения задачи переименования файлов рекомендуется использовать модуль pathlib:
from pathlib import Path
folder = Path('.')
for file_path in folder.glob('*.txt'):
file_path.rename(f'new_{file_path.name}')
С pathlib получается работать с файловыми шаблонами и структурированными путями гораздо удобнее.
Создайте резервную копию файлов перед началом работы
Бэкап перед важной работой с файлами -- это залог вашего спокойствия:
import shutil
shutil.copy2(original_path, backup_path)
👉@BookPythonnum_uppercase = sum(1 for line in open( 'filename.txt') for character in line if character. isupper ( ))
В этом однострочнике мы открываем файл ‘filename.txt’ и пробегаемся по всем его строкам и символам в каждой строке.
Для каждого символа, который является заглавной буквой метод isupper() возвращает True, и мы добавляем 1 к счетчику с помощью функции sum(). В конце, num_uppercase будет содержать количество заглавных букв в файле.
👉@BookPythonclass CustomException(Exception):
...
Сначала я решил, что это просто какой-то псевдокод. В Python для заполнения тела пустой функции, которая еще не реализована, обычно используется ключевое слово pass. Я подумал: «здесь указано, что далее будет больше кода, но в этом месте код сокращен, чтобы просто понять идею». Следовательно, использование ключевого слова pass означало бы, что что-то еще не реализовано. Больше я об этом не задумывался, но иногда использовал сам, чтобы объяснить коллегам определенную концепцию.
https://florian-dahlitz.de/articles/what-is-pythons-ellipsis-object
@BookPythonСоздание цифровых часов с помощью Python-Turtle
Turtle - это специальная функция языка Python. Используя Turtle, мы можем легко рисовать на чертежной доске. Сначала мы импортируем модуль turtle. Затем создаем окно, далее создаем объект turtle и, используя методы turtle, рисуем на чертежной доске.
import time
import datetime as dt
import turtle
# create a turtle to display time
t = turtle.Turtle()
# create a turtle to create rectangle box
t1 = turtle.Turtle()
# create screen
s = turtle.Screen()
# set background color of the screen
s.bgcolor("green")
# obtain current hour, minute and second
# from the system
sec = dt.datetime.now().second
min = dt.datetime.now().minute
hr = dt.datetime.now().hour
t1.pensize(3)
t1.color('black')
t1.penup()
# set the position of turtle
t1.goto(-20, 0)
t1.pendown()
# create rectangular box
for i in range(2):
t1.forward(200)
t1.left(90)
t1.forward(70)
t1.left(90)
# hide the turtle
t1.hideturtle()
while True:
t.hideturtle()
t.clear()
# display the time
t.write(str(hr).zfill(2)
+ ":"+str(min).zfill(2)+":"
+ str(sec).zfill(2),
font=("Arial Narrow", 35, "bold"))
time.sleep(1)
sec += 1
if sec == 60:
sec = 0
min += 1
if min == 60:
min = 0
hr += 1
if hr == 13:
hr = 1
https://www.geeksforgeeks.org/create-digital-clock-using-python-turtle/
👉@BookPython