CodeGym /Kurslar /Python SELF AZ /Diskdə fayllarla işləmək

Diskdə fayllarla işləmək

Python SELF AZ
Səviyyə , Dərs
Mövcuddur

6.1 Fayllarla işləmə

Python fayllar və kataloqlarla işləmək üçün bir çox daxili funksiyalar və modullar təqdim edir. Əsas əməliyyatlar os, shutil və digər daxili modullar vasitəsilə həyata keçirilir.

Fayllarla üç əsas əməliyyat:

  • Kopyalama
  • Daşınma
  • Silinmə

Bu əməliyyatlar üçün shutil modulu idealdır.

Faylın kopyalanması


import shutil

shutil.copy('menbe.txt', 'teyinati.txt')
        

Faylın daşınması


import shutil

shutil.move('menbe.txt', 'teyinati.txt')
        

Faylın silinməsi


import os

os.remove('numune.txt')
        

Hər zamankindən də asandır.

6.2 Faylın mövcudluğunu yoxlamaq

Çox vaxt hansısa faylın mövcud olub-olmadığını yoxlamaq lazımdır. Bunun üçün os modulunda xüsusi bir metod var — exists().

Faylın mövcudluğunu yoxlamaq


import os

if os.path.exists('example.txt'):
    print("Fayl mövcuddur")
else:
    print("Fayl mövcud deyil")
    # Əgər fayl mövcud deyilsə, proqram else blokunda təsvir olunan hərəkətləri yerinə yetirəcək.
    # Məsələn, xəbərdarlıq mesajı göstərə, yeni bir fayl yarada və ya proqramdan çıxa bilər.

        

Əgər fayl mövcud deyilsə, proqram bunu şərtlərlə işləyə və ya bir istisna ata bilər.

6.3 Obyektin növünü yoxlamaq: fayl və ya direktoriya

Çox vaxt obyektin fayl və ya direktoriya olub-olmadığını yoxlamaq lazım olur. Məsələn, əgər bir direktoriyanın bütün məzmununu oxuyursunuzsa və faylları bir şəkildə, direktoriyaları isə başqa bir şəkildə emal etməlisiniz.

Belə hallar üçün iki xüsusi metod var — isdir(), obyektin direktoriyanın olub-olmadığını yoxlayır, və isfile(), obyektin fayl olub-olmadığını yoxlayır.

Yoxlama — bu direktoriya mı?


if os.path.isdir('example_directory'):
    print("Bu direktoriya")
else:
    print("Bu direktoriya deyil")
        

Yoxlama — bu fayl mı?


if os.path.isfile('example_file'):
    print("Bu fayldır")
else:
    print("Bu fayl deyil")
        

Bunlar çox faydalı funksiyalardır, hansılar ki çox düşündüyünüzdən daha çox istifadə edəcəksiniz. :)

6.4 Yol ilə işləmək

os modulunun altında bir modulu var - os.path, hansı ki fayllar və qovluqlarla işləmək üçün faydalı funksiyalar təqdim edir. Budur onlardan bəziləri:

Faylın genişlənməsinin alınması

splitext() funksiyası fayl adını iki hissəyə bölür və iki elementdən ibarət siyahı qaytarır: ad və genişlənmə.


import os.path

# Faylın genişlənməsinin alınması
file_path = 'example.txt'
file_extension = os.path.splitext(file_path)[1]
print(f"Fayl genişlənməsi: {file_extension}")
        

Fayl adını genişlənmə olmadan almaq


import os.path

# Fayl adını genişlənmə olmadan almaq
file_path = 'example.txt'
file_name = os.path.splitext(os.path.basename(file_path))[0]
print(f"Genişlənmə olmadan faylın adı: {file_name}")
        

Yoldan fayl adını almaq

basename() funksiyası yalnız fayl adını qaytarır, və yoldan qalan hissəni çıxarır.


import os.path

# Yoldan fayl adını almaq
file_path = '/path/to/example.txt'
file_name = os.path.basename(file_path)
print(f"Faylın adı: {file_name}")
        

Yoldan qovluğu almaq

Fayl adından yalnız qovluğu almaq da çox asandır, bunun üçün dirname() funksiyasından istifadə olunabilir.


import os.path

# Yoldan qovluğu almaq
file_path = '/path/to/example.txt'
directory = os.path.dirname(file_path)
print(f"Qovluq: {directory}")
        

Yolları birləşdirmək

Əgər ayrıca qovluq və ayrı bir fayl adı varsa, siz bu faylın tam yolunu əldə edə bilərsiniz.


import os.path

# Yolları birləşdirmək
directory = '/path/to'
file_name = 'example.txt'
full_path = os.path.join(directory, file_name)
print(f"Tam yol: {full_path}")
        

6.5 Platformadan asılı olmayan yollar

Yollarla işləyərkən əməliyyat sistemləri arasındakı fərqləri nəzərə almaq vacibdir. Fayl yol ayırıcıları fərqli ola bilər və bir platformada işləyən kod digərində işləməyə bilər. Kodunuzu fərqli əməliyyat sistemləri arasında daşıyanda problemlərdən qaçmaq üçün os.path.join(), os.path.abspath()os.path.dirname() funksiyalarından istifadə edin, bu da müxtəlif platformalarla uyğunluğu təmin edir.

Məsələn:


import os

# Yolları platformadan asılı olmayan şəkildə birləşdirmək
directory = 'some_directory'
file_name = 'example.txt'
full_path = os.path.join(directory, file_name)
print(f"Tam yol: {full_path}")
        

Absolyut yolun alınması

Əgər sizdə yalnız hazırki iş qovluğuna nisbətən yol varsa və siz onu absolyut yola çevirmək istəyirsinizsə, bunun üçün abspath() funksiyası mövcuddur.


import os.path

# Absolyut yolun alınması
relative_path = 'example.txt'
absolute_path = os.path.abspath(relative_path)
print(f"Absolyut yol: {absolute_path}")
        

Vacibdir! Hər zaman sistem funksiyalarından istifadə edin yollarla işləyəndə, çünki sizin kod başqa bir əməliyyat sistemində işə düşə bilər, burada fayl ayırıcı \ deyil, / ola bilər, və ya burada yollarda «:» qadağan edilmiş ola bilər və s.

Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION