Модуль os дозволяє взаємодіяти з операційною системою.
Основні можливості:
• os.getcwd() — поточна директорія
• os.listdir(path) — список файлів у папці
• os.path.exists(path) — чи існує шлях
• os.path.join() — з'єднати частини шляху правильно
• os.makedirs() — створити папки
• os.rename() — перейменувати файл
• os.remove() — видалити файл
1Модуль pathlib — сучасна альтернатива os.path:
2from pathlib import Path
3p = Path(&class="hl-comment">#039;my_folder039;)
4p.mkdir(exist_ok=True)from pathlib import Path
from collections import defaultdict
groups = defaultdict(list)
for f in Path('.').iterdir():
if f.is_file():
size_kb = f.stat().st_size / 1024
groups[f.suffix].append((f.name, size_kb))
for ext, files in sorted(groups.items()):
print(f'\n[{ext or "без розширення"}]')
for name, size in files:
print(f' {name}: {size:.1f} КБ')
from pathlib import Path
from collections import defaultdict
duplicates = defaultdict(list)
for f in Path('.').iterdir():
if f.is_file():
duplicates[f.stem].append(f.suffix)
for name, exts in duplicates.items():
if len(exts) > 1:
print(f'{name}: {', '.join(exts)}')
from pathlib import Path
import shutil
folder = Path('.')
plan = {}
for f in folder.iterdir():
if f.is_file() and f.suffix:
ext = f.suffix[1:] # без крапки
if ext not in plan:
plan[ext] = []
plan[ext].append(f.name)
print('План:')
for ext, files in plan.items():
print(f' Папка [{ext}]: {len(files)} файлів')
if input('Виконати? (так/ні): ').lower() == 'так':
for ext, files in plan.items():
dest = folder / ext
dest.mkdir(exist_ok=True)
for name in files:
shutil.move(str(folder / name), str(dest / name))
print('Готово!')
else:
print('Скасовано.')