Справочник Программиста
6.29K subscribers
1.35K photos
387 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 glob
import shutil

extensions = {
"jpg": "images",
"png": "images",
"ico": "images",
"gif": "images",
"svg": "images",
"sql": "sql",
"exe": "programs",
"msi": "programs",
"pdf": "pdf",
"xlsx": "excel",
"csv": "excel",
"rar": "archive",
"zip": "archive",
"gz": "archive",
"tar": "archive",
"docx": "word",
"torrent": "torrent",
"txt": "text",
"ipynb": "python",
"py": "python",
"pptx": "powerpoint",
"ppt": "powerpoint",
"mp3": "audio",
"wav": "audio",
"mp4": "video",
"m3u8": "video",
"webm": "video",
"ts": "video",
"json": "json",
"css": "web",
"js": "web",
"html": "web",
"apk": "apk",
"sqlite3": "sqlite3"
}

path = ""


for extension, folder_name in extensions.items():
files = glob.glob(os.path.join(path, f"*.{extension}"))
print(f"[*] Найдено {len(files)} файла(-ов) с расширением {extension}.")
if not os.path.isdir(os.path.join(path, folder_name)) and files:
os.mkdir(os.path.join(path, folder_name))
print(f"[+] Создана папка {folder_name}.")

for file in files:
basename = os.path.basename(file)
dst = os.path.join(path, folder_name, basename)
print(f"[*] Перенесён файл '{file}' в {dst}")
shutil.move(file, dst)
👍11
Не волнуйтесь, это последнее видео по PowerPoint))
Получаем размер каталога (папки) в 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