Получаем размер каталога (папки) в 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)
Код из видео:
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("Пароль не найден :(")
Код из видео:
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
Справочник Программиста
Не волнуйтесь, это последнее видео по PowerPoint))
Точнее уроков новых по нему не будет, но сборник обязательно надо выложить))
Времени не было снять что-то новое, поэтому выходит сборник)
https://youtu.be/tZupGQC6L8w
Времени не было снять что-то новое, поэтому выходит сборник)
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
Код из видео:
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
Запись определённого окна на видео в 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()
Код из видео:
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
Парсинг 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)
Код из видео:
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
Извлекаем кадры из видео в Python
Код из видео:
from moviepy.editor import VideoFileClip
import numpy as np
import os
from datetime import timedelta
SAVING_FRAMES_PER_SECOND = 10
def format_timedelta(td):
result = str(td)
try:
result, ms = result.split(".")
except ValueError:
return result + ".00".replace(":", "-")
ms = round(int(ms) / 10000)
return f"{result}.{ms:02}".replace(":", "-")
def main(video_file):
video_clip = VideoFileClip(video_file)
filename, _ = os.path.splitext(video_file)
if not os.path.isdir(filename):
os.mkdir(filename)
saving_frames_per_second = min(video_clip.fps, SAVING_FRAMES_PER_SECOND)
step = 1 / video_clip.fps if saving_frames_per_second == 0 else 1 / saving_frames_per_second
for current_duration in np.arange(0, video_clip.duration, step):
frame_duration_formatted = format_timedelta(timedelta(seconds=current_duration)).replace(":", "-")
frame_filename = os.path.join(filename, f"frame{frame_duration_formatted}.jpg")
video_clip.save_frame(frame_filename, current_duration)
video_file = 'путь_до_видео'
main(video_file)
Код из видео:
from moviepy.editor import VideoFileClip
import numpy as np
import os
from datetime import timedelta
SAVING_FRAMES_PER_SECOND = 10
def format_timedelta(td):
result = str(td)
try:
result, ms = result.split(".")
except ValueError:
return result + ".00".replace(":", "-")
ms = round(int(ms) / 10000)
return f"{result}.{ms:02}".replace(":", "-")
def main(video_file):
video_clip = VideoFileClip(video_file)
filename, _ = os.path.splitext(video_file)
if not os.path.isdir(filename):
os.mkdir(filename)
saving_frames_per_second = min(video_clip.fps, SAVING_FRAMES_PER_SECOND)
step = 1 / video_clip.fps if saving_frames_per_second == 0 else 1 / saving_frames_per_second
for current_duration in np.arange(0, video_clip.duration, step):
frame_duration_formatted = format_timedelta(timedelta(seconds=current_duration)).replace(":", "-")
frame_filename = os.path.join(filename, f"frame{frame_duration_formatted}.jpg")
video_clip.save_frame(frame_filename, current_duration)
video_file = 'путь_до_видео'
main(video_file)
👍19