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() və 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.
GO TO FULL VERSION