Библиотека Python разработчика | Книги по питону
Погружение в CPython и архитектуру. Разбираем неочевидное поведение (GIL, Memory), Best Practices (SOLID, DDD) и тонкости Django/FastAPI. Решаем задачи с подвохом и оптимизируем алгоритмы. 🐍 По всем вопросам @evgenycarter РКН clck.ru/3Ko7Hq
Ko'proq ko'rsatish📈 Telegram kanali Библиотека Python разработчика | Книги по питону analitikasi
Библиотека Python разработчика | Книги по питону (@bookpython) Rus til segmentidagi kanali faol ishtirokchi. Hozirda hamjamiyat 17 967 obunachidan iborat bo'lib, Texnologiyalar & Aralashmalar toifasida 7 242-o'rinni va Rossiya mintaqasida 36 580-o'rinni egallagan.
📊 Auditoriya ko‘rsatkichlari va dinamika
невідомо sanasidan buyon loyiha tez o‘sib, 17 967 obunachiga ega bo‘ldi.
02 Noyabr, 2026 dagi oxirgi ma’lumotlarga ko‘ra kanal barqaror faollikka ega. Oxirgi 30 kunda obunachilar soni -89 ga, so‘nggi 24 soatda esa -1 ga o‘zgardi va umumiy qamrov yuqori darajada qolmoqda.
- Tasdiqlash holati: Tasdiqlanmagan
- Jalb etish (ER): Auditoriya o‘rtacha 5.58% darajada jalb etiladi. Nashrdan keyingi dastlabki 24 soatda kontent odatda umumiy obunachilar sonining 2.74% ini tashkil etuvchi reaksiyalarni to‘playdi.
- Post qamrovi: Har bir post o‘rtacha 1 003 marta ko‘riladi; birinchi sutkada odatda 492 ta ko‘rish yig‘iladi.
- Reaksiyalar va o‘zaro ta’sir: Auditoriya faol: har bir postga o‘rtacha 4 ta reaksiya keladi.
- Tematik yo‘nalishlar: Kontent numbers, yield, модуль, none, декоратор kabi asosiy mavzularga jamlangan.
📝 Tavsif va kontent siyosati
Muallif resursni shaxsiy fikrni ifoda etish maydoni sifatida ta’riflaydi:
“Погружение в CPython и архитектуру. Разбираем неочевидное поведение (GIL, Memory), Best Practices (SOLID, DDD) и тонкости Django/FastAPI. Решаем задачи с подвохом и оптимизируем алгоритмы. 🐍
По всем вопросам @evgenycarter
РКН clck.ru/3Ko7Hq”
Yuqori yangilanish chastotasi (oxirgi ma’lumot 03 Noyabr, 2026 da olingan) sababli kanal doimo dolzarb va katta qamrovli bo‘lib qoladi. Analitika auditoriya kontent bilan faol hamkorlik qilishini, uni Texnologiyalar & Aralashmalar toifasidagi muhim ta’sir nuqtasiga aylantirishini ko‘rsatadi.
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