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: |