Справочник Программиста
6.29K subscribers
1.35K photos
386 videos
64 files
1.7K links
По рекламе - @it_start_programmer
Мои курсы - @courses_from_it_start_bot
Сайт - https://it-start.online/
YouTube - https://www.youtube.com/@it_start
Реклама на бирже - https://telega.in/c/programmersGuide_1

Предложить идею: @it_start_suggestion_bot
Download Telegram
Получаем размер каталога (папки) в python
Код из видео:

import os
import matplotlib.pyplot as plt


def get_size_format(b, factor=1024, suffix="B"):
for unit in ["", "K", "M", "G", "T", "P", "E", "Z"]:
if b < factor:
return f"{b:.2f}{unit}{suffix}"
b /= factor
return f"{b:.2f}Y{suffix}"


def get_directory_size(directory):
total = 0
try:
for entry in os.scandir(directory):
if entry.is_file():
total += entry.stat().st_size
elif entry.is_dir():
total += get_directory_size(entry.path)
except NotADirectoryError:
return os.path.getsize(directory)
except PermissionError:
return 0
return total


def plot_pie(sizes, names):
plt.pie(sizes, labels=names, autopct=lambda pct: f"{pct:.2f}%")
plt.title("Размеры подкаталогов и файлов")
plt.show()


folder_path = ''

directory_sizes = []
names = []

for directory in os.listdir(folder_path):
directory = os.path.join(folder_path, directory)
directory_size = get_directory_size(directory)

if directory_size == 0:
continue

directory_sizes.append(directory_size)
names.append(os.path.basename(directory) + ": " + get_size_format(directory_size))


print("Общий размер каталога:", get_size_format(sum(directory_sizes)))
plot_pie(directory_sizes, names)
👍6
Подбор пароля к zip-файлу в Python
Код из видео:

from tqdm import tqdm
import zipfile

wordlist = ''
zip_file = ''
zip_file = zipfile.ZipFile(zip_file)

n_words = len(list(open(wordlist, "rb")))

with open(wordlist, "rb") as wordlist:
for word in tqdm(wordlist, total=n_words, unit="word"):
try:
zip_file.extractall(pwd=word.strip())
except:
continue
else:
print("Пароль найден:", word.decode().strip())
exit(0)
print("Пароль не найден :(")
👍19
passwords.txt
133.4 MB
Файл с паролями
👍16🥴1
Справочник Программиста
Не волнуйтесь, это последнее видео по PowerPoint))
Точнее уроков новых по нему не будет, но сборник обязательно надо выложить))
Времени не было снять что-то новое, поэтому выходит сборник)

https://youtu.be/tZupGQC6L8w
👍7😁2🤔1
Подбор пароля к pdf-документу в Python
Код из видео:

import pikepdf
from tqdm import tqdm

passwords = [line.strip() for line in open("passwords.txt", encoding='UTF-8')]

for password in tqdm(passwords, "Расшифровка PDF-файла"):
try:
with pikepdf.open("pdfTest.pdf", password=password) as pdf:
print("Пароль найден:", password)
break
except pikepdf._qpdf.PasswordError:
continue
👍16
Видео выйдет послезавтра.
16👍6😱3
Запись определённого окна на видео в python
Код из видео:

import cv2
import numpy as np
import pyautogui
import pygetwindow as gw

window_name = 'путь к файлу'

fourcc = cv2.VideoWriter_fourcc(*"XVID")
fps = 30.0
record_seconds = 15

w = gw.getWindowsWithTitle(window_name)[0]
w.activate()

out = cv2.VideoWriter("output.avi", fourcc, fps, tuple(w.size))

for i in range(int(record_seconds * fps)):
img = pyautogui.screenshot(region=(w.left, w.top, w.width, w.height))
frame = np.array(img)
frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
out.write(frame)
cv2.imshow("screenshot", frame)
if cv2.waitKey(1) == ord("q"):
break

cv2.destroyAllWindows()
out.release()
👍8🔥1
Видео снова переносится на послезавтра.
9
Парсинг javascript и css с сайта с помощью python
Код из видео:

import requests
from bs4 import BeautifulSoup as bs
from urllib.parse import urljoin

url = "ссылка_на_сайт"

session = requests.Session()

session.headers["User-Agent"] = "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 Safari/537.36"

html = session.get(url).content
soup = bs(html, "html.parser")

script_files = []

for script in soup.find_all("script"):
if script.attrs.get("src"):
script_url = urljoin(url, script.attrs.get("src"))
script_files.append(script_url)

css_files = []

for css in soup.find_all("link"):
if css.attrs.get("href"):
css_url = urljoin(url, css.attrs.get("href"))
css_files.append(css_url)

print("Общее количество файлов скриптов на странице:", len(script_files))
print("Общее количество CSS-файлов на странице:", len(css_files))

with open("javascript_files.txt", "w") as f:
for js_file in script_files:
print(js_file, file=f)

with open("css_files.txt", "w") as f:
for css_file in css_files:
print(css_file, file=f)
👍12
Видео выйдет завтра)
9😱2