3. Fayl v papkalarni o`chirish
Fayl va papkalar bilan ishlaganda, ularni o`chirishga ehtiyoj paydo bo`lishi mumkin. Fayllarni o`chirish uchun os modulida remove(), papkalarni o`chirish uchun esa rmdir() funktsiyalari xizmat qiladi. Bu funktsiyalarning umumiy ko`rinishi quyidagicha:
os.remove('faylning manzili va nomi')
os.rmdir('o`chiriladigan papkaning nomi')
Bu amallarni pathlib moduli yordamida ham hal qilish mumkin. Bu modulda fayllarni o`chirish uchun - unlink(), papkalarni o`chirish uchun esa— rmdir() funktsiyalari javob beradi.Bu funktsiyaarning har ikkisi ham Path ob`ektining nusxalari hisoblanadi.
4. Papkadagi fayllar ro`yxatini olish. Ma`lumotlarni qayta ishlash jarayonida papkadagi fayllar ro`yxatini olishga to`g’ri kelib qolishi mumkin. Odatda bu ro`yxat ma`lum bir shablonga mos keladi. Aytaylik, bizga kengaytmasi .txt bo`lgan fayllar ro`yxati zarur bo`lib qoldi. Bu masalani path ob`ektli glob() metodi yordamida hal qilish mumkin. Shuni yodda tutish kerakki, bu metod iteratsiyalar (takrorlashlar) generatorini hosil qiladi. Quyida ana shu generatorning ishi namoyish qilinadi:
from pathlib import Path
txt_files = list(Path('.').glob("*.txt"))
print("Txt files:", txt_files)
Zarur hollarda glob() metodidan to`g’ridan-to`g’ri foydalanish ham mumkin. Bu holda fayllar ro`yxati aniqlanadi va bu ro`yxatdan keyinchalik ehtiyojga ko`ra foydalanish mumkin. Bu ko`rsatmalarning farqi shundaki, Path.glob() metodi fayllar ro`yxatini manzili bilan birga yaratadi.
from glob import glob
files = list(glob('f*'))
print("h xarfi bilan boshlanadigan fayllar: ", files)
5. Fayllardan nusxa olish va joyini almashtirish. Bu ikki amal fayllar bilan ishlaganda eng ko`p qo`llanadigan amallardan hisoblanadi. Fayllarning joyini almashtirish uchun ularning nomi va manzillari yangisiga almashtiriladi. Faraz qilaylik, joriy papkadagi .txt kenagytmali fayllar joyini boshqa papkaga o`zgartirish talab qilingan bo`lsin. Quyidagi namunada bu masala qanday qilib pathlib moduli yordamida qilish mumkinligi namoyish qilinadi:
maqsad_papka = Path("maqsad_papka")
maqsad_papka.mkdir(parents=True,exist_ok=True)
manba_papka = Path('.')
txt_files = manba_papka.glob('*.txt')
for txt_file in txt_files:
filename = txt_file.name
maqsad_manzil = maqsad_papka.joinpath(filename)
print(f"** Joyi almashtiriladigan fayllar {filename}")
print("Target File Exists:", maqsad_manzil.exists())
txt_file.rename(maqsad_manzil)
print("Target File Exists:", maqsad_manzil.exists(), '\n')
Fayllardan nusha olish uchun shutil modulidagi copy() funktsiyasidan foydalaniladi. Zarur hollarda copy() va glob() metodlarini umumlashtirish mumkin.
import shutil
source_file = "target_folder/hello.txt"
target_file = "hello2.txt"
target_file_path = Path(target_file)
print("* Before copying, file exists:", target_file_path.exists())
shutil.copy(source_file, target_file)
print("* After copying, file exists:", target_file_path.exists())
Do'stlaringiz bilan baham: |