Автоматжуулалт (файл, хавтас)
Дахин давтагдах ажлыг гараар хийх нь цаг үрдэг. 500 зургийн нэрийг өөрчлөх, тодорхой өргөтгөлтэй файлуудыг шүүн хавтаст хийх, хуучин лог файлуудыг автоматаар цэвэрлэх — эдгээрийг Python нэг удаа бичсэн кодоор хэдхэн секундэд хийдэг. Энд os, shutil, pathlib гурван стандарт модуль голлоно.
pathlib — орчин үеийн файлын зам
pathlib нь файлын замыг мөр биш объект хэлбэрт харуулдаг тул / оператороор хавтас нэгтгэж болно:
from pathlib import Path
# Одоогийн фолдер
одоогийн = Path.cwd()
print(одоогийн)
# Зам нэгтгэх
баримт = одоогийн / "баримтууд" / "тайлан.txt"
print(баримт) # /home/user/баримтууд/тайлан.txt
# Файлын мэдээлэл
print(баримт.name) # тайлан.txt
print(баримт.stem) # тайлан
print(баримт.suffix) # .txt
print(баримт.parent) # /home/user/баримтууд
# Файл, хавтас байгаа эсэхийг шалгах
print(баримт.exists())
print(баримт.is_file())
print(баримт.is_dir())
Хавтас үүсгэх ба файл жагсаах
from pathlib import Path
# Хавтас үүсгэх (дундын хавтасуудыг ч үүсгэнэ)
шинэ_хавтас = Path("гаралт") / "2025" / "5-р сар"
шинэ_хавтас.mkdir(parents=True, exist_ok=True)
print(f"Хавтас үүсгэлээ: {шинэ_хавтас}")
# Хавтас доторх бүх файл жагсаах
эх_хавтас = Path("баримтууд")
for файл in эх_хавтас.iterdir():
print(файл.name)
# Зөвхөн .txt файлуудыг олох (бүх дэд хавтасаас)
for файл in Path(".").rglob("*.txt"):
print(файл)
Файл хуулах, зөөх, устгах
shutil модуль файл, хавтас хуулах, зөөхөд хэрэглэгдэнэ:
import shutil
from pathlib import Path
эх = Path("тайлан.txt")
зорь = Path("архив") / "тайлан_2025.txt"
# Хуулах
зорь.parent.mkdir(exist_ok=True)
shutil.copy2(эх, зорь)
print(f"Хуулагдлаа: {зорь}")
# Зөөх (нэр өөрчлөх ч ашигладаг)
шинэ_нэр = Path("тайлан_эцсийн.txt")
эх.rename(шинэ_нэр)
# Файл устгах
шинэ_нэр.unlink()
# Хавтасыг дотор нь бүгдтэй нь устгах
хуучин_хавтас = Path("түр_хавтас")
if хуучин_хавтас.exists():
shutil.rmtree(хуучин_хавтас)
print("Хавтас устгагдлаа ✓")
Бодит жишээ: файлуудыг өргөтгөлөөр ангилах
Татаж авалтын хавтасыг автоматаар цэвэрлэдэг программ — энэ нь практикт хамгийн их хэрэглэгдэх автоматжуулалтын жишээ:
import shutil
from pathlib import Path
АНГИЛАЛ = {
"Зураг": [".jpg", ".jpeg", ".png", ".gif", ".webp"],
"Баримт": [".pdf", ".docx", ".xlsx", ".txt", ".csv"],
"Видео": [".mp4", ".mov", ".avi", ".mkv"],
"Хөгжим": [".mp3", ".wav", ".flac"],
"Код": [".py", ".js", ".ts", ".html", ".css"],
}
def хавтас_цэвэрлэх(эх_хавтас: Path) -> None:
тоолох = 0
for файл in эх_хавтас.iterdir():
if not файл.is_file():
continue
өргөтгөл = файл.suffix.lower()
зорилтот_хавтас = None
for ангилал, өргөтгөлүүд in АНГИЛАЛ.items():
if өргөтгөл in өргөтгөлүүд:
зорилтот_хавтас = эх_хавтас / ангилал
break
if зорилтот_хавтас is None:
зорилтот_хавтас = эх_хавтас / "Бусад"
зорилтот_хавтас.mkdir(exist_ok=True)
shutil.move(str(файл), зорилтот_хавтас / файл.name)
тоолох += 1
print(f"{тоолох} файл ангилагдлаа ✓")
хавтас_цэвэрлэх(Path("Татаж авалт"))
Энэ программыг компьютерт тань байгаа "Татаж авалт" хавтасанд ажиллуулбал хэдэн зуун файл секундэд зохион байгуулагдана. Гараар хийхэд хагас цаг зарцуулах ажлыг Python нэг удаа автоматжуулж өгнө.
Дараагийн хичээлд:
CLI хэрэгсэл бүтээнэ — argparse модуль ашиглан командын мөрнөөс аргумент хүлээн авдаг, бусад хөгжүүлэгчид ашиглаж болох жинхэнэ хэрэгсэл хэрхэн бичихийг сурна.