#ЧтениеPowerPointФайловСПомощьюPython
Код из видео:
from pptx import Presentation
root = Presentation("Example.pptx")
for slide in root.slides:
for shape in slide.shapes:
if not shape.has_text_frame:
continue
for paragraph in shape.text_frame.paragraphs:
for run in paragraph.runs:
print(run.text)
Код из видео:
from pptx import Presentation
root = Presentation("Example.pptx")
for slide in root.slides:
for shape in slide.shapes:
if not shape.has_text_frame:
continue
for paragraph in shape.text_frame.paragraphs:
for run in paragraph.runs:
print(run.text)
👍6
Почти добавил всё, что хотел в "ОС" на python. В ближайшие дни выйдет вторая часть ;)
❤8👍3
Сортировка файлов по расширениям с помощью 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)
Код из видео:
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
Получаем размер каталога (папки) в 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