Python Fayl İşlənməsi

Python File Handling “Python File Handling” mövzusuna keçməzdən əvvəl nə üçün fayllara ehtiyacımız olduğunu anlamağa çalışaq? İndiyə qədər giriş məlumatlarını konsoldan alırıq və çıxış məlumatlarını yenidən konsola yazırıq. Konsol yalnız məhdud sayda məlumatı göstərir. Bu səbəbdən giriş və çıxış kiçik olduqda heç bir problemimiz yoxdur. Nədirsə çıxış və ya giriş çox böyükdür?

Giriş və ya çıxış olaraq böyük məlumatlar olduqda fayllardan istifadə edirik. Bir fayl, məlumatları saxlayan diskdə adlanan bir yerdən başqa bir şey deyildir. Fayllar daim məlumatları daimi olaraq saxlamaq üçün istifadə olunur, çünki dəyişkən olmayan yaddaşda məlumat saxlayır.

Python File Handling: Fayl əməliyyatı:

Python'da fayl əməliyyatı aşağıdakı sıraya uyğundur:

  • Bir faylı açın
  • Bir sənəd oxuyun və ya yazın
  • Bir faylı bağlayın

Bir faylı açın:

Bir faylda oxumaq və yazmaq kimi əməliyyatlar etməzdən əvvəl etməyimiz lazım olan ilk şey bir sənəd açmaqdır. Python daxili bir təmin edir funksiyası açmaq () bir faylı açmaq üçün. Açıq funksiya iki parametr qəbul edir: faylın adı və giriş rejimi. Giriş rejimi oxunub-yazılmayıb bir fayl üzərində hansı əməliyyatı aparacağımızı müəyyənləşdirir. Open () funksiyası öz növbəsində giriş rejiminə əsasən fayl əməliyyatları həyata keçirə biləcəyimiz bir fayl obyekti / sapı qaytarır.

Sintaksis:

file_object=open(filename, access_mode)

Misal:

file_object=open("test.txt") # when file is in the current directory
file_object=open("C:\User\Desktop\test.txt") # specify full path when file is in different directory

Oxu rejimini təyin etmiriksə, standart rejim 'r' olaraq oxunur.

Giriş rejimləri:

Gəlin digər giriş rejimlərinin nə olduğunu görək.

Access Modutəsvir
ryalnız oxumaq rejimi. Göstərici sənədin əvvəlindədir.
rbikili formatda yalnız oxumaq rejimi. Göstərici sənədin əvvəlindədir.
r+Həm oxumaq, həm də yazma əməliyyatına icazə verin. Göstərici sənədin əvvəlindədir.
rb +Həm oxumağa, həm də ikili formatda yazma əməliyyatına icazə verin. Göstərici sənədin əvvəlindədir.
wyalnız yazmaq rejimi. Mövcud olduğu təqdirdə yeni bir sənəd yaradır. Göstərici sənədin əvvəlindədir.
wbikili formatda yalnız yazmaq rejimi. Mövcud olduğu təqdirdə yeni bir sənəd yaradır. Göstərici sənədin əvvəlindədir.
w+Həm oxumaq, həm də yazma əməliyyatına imkan verir. w +, fayllar artıq mövcuddursa, r + mövcud olanın üzərinə yazmır. Göstərici sənədin əvvəlindədir.
wb +Həm oxuma, həm də ikili formatda yazma əməliyyatına imkan verir. wb +, fayllar artıq mövcuddursa, rb + mövcud olanın üzərinə yazmır. Göstərici sənədin əvvəlindədir.
aəlavə rejimi. Fayl varsa, göstərici sənədin sonunda olacaq. Əks halda yeni bir fayl yaradır.
abikili formatda əlavə rejimi. Fayl varsa, göstərici sənədin sonunda olacaq. Əks halda yeni bir fayl yaradır.
a+Həm əlavə, həm də oxuma əməliyyatına imkan verir. Fayl varsa, göstərici sənədin sonunda olacaq. Əks halda yeni bir fayl yaradır.
ab +Həm əlavə, həm də ikili formatda oxumağa imkan verir. Fayl varsa, göstərici sənədin sonunda olacaq. Əks halda yeni bir fayl yaradır.

Bir faylı bağlayın:

Bir fayl üzərində əməliyyatlar apardıqdan sonra faylı bağlamalıyıq. Bir faylı bağladığımızda, faylla əlaqəli bütün mənbələri azad edəcəkdir. Bir faylı bağlamaq üçün daxili (close) metodundan istifadə edirik. Yaxınlaşmaq üçün Python-un zibil toplayıcısı olmasına baxmayaraq, faylın bağlanması üçün buna etibar edə bilmərik.

file_object=open("test.txt")
file_object.close()

Bəzi fayl əməliyyatı apararkən, bir istisna varsa, kodu bağlamadan kod sona çatır. Bu səbəbdən bir cəhd nəhayət bir bloka sahib olmaq yaxşı bir təcrübədir.

try:
    file_object=open("test.txt")
    # file operations
finally:
    file_object.close()

açıqlama ilə:

'İlə' ifadəsini istifadə etməyin üstünlüyü, istisna olduğu təqdirdə də faylın avtomatik olaraq bağlanmasıdır. 'With' ifadəsini istifadə etsək, bizə yaxın () funksiyasına ehtiyac yoxdur. Daxili olaraq edilir. Fayllarla işləyərkən həmişə 'with' ifadəsini istifadə etmək yaxşı bir tətbiqdir.

with open('file.txt','r') as f:
    #perform file operations

Bir fayla yazın:

Bu iki giriş rejimindən birini istifadə edərək bir fayla yazmaq üçün write () funksiyasından istifadə edirik:

'w': Yeni bir fayl yaradır və ona yazır. Fayl göstəricisi sənədin əvvəlindədir. Fayl artıq mövcuddursa, mövcud dosyanın üzərinə yazır.

'a': Mövcud fayla əlavə edin. Fayl göstəricisi sənədin sonunda yerləşir. Fayl yoxdursa, yenisini yaradır.

Misal - 'w' ilə:

with open('file.txt','w') as f:
    f.write(' She dissimilar was favourable unreserved nay expression contrasted saw. Past her find she like bore pain open. Shy lose need eyes son not shot')

Və nəticə:

Python Fayl İşlənməsi

Məsələn - 'a' ilə (mövcud fayla əlavə olunur):

with open('file.txt','a') as f:
    f.write('Jennings removing are his eat dashwood. Middleton as pretended listening he smallness perceived. Now his but two green spoil drift. ')

Python Fayl İşlənməsi

Misal - 'a' ilə (yeni bir fayl yaradır və ona yazır):

with open('file1.txt','a') as f:
    f.write('Jennings removing are his eat dashwood. Middleton as pretended listening he smallness perceived. Now his but two green spoil drift. ')

Python Fayl İşlənməsi

Yeni bir sətirə yazmaq üçün yeni bir sətir xarakteri daxil edə bilərik.

with open('file.txt','w') as f:
    f.write('First line\n')
    f.write('Second line\n')
    f.write('Third line\n')

Bir sənəddən oxuyun:

Python bir fayldan oxumaq üçün () metodunu oxudu. Fayl göstəricisi sənədin əvvəlindədir.

Sintaksis:

file_object.read(<count>)

count- faylın əvvəlindən başlayaraq fayldan oxunacaq bayt sayını müəyyənləşdirir. İstəyə bağlı bir parametrdir. Sayı verilmirsə, bütün dosyayı oxuyur.

Nümunə - bütün faylı oxuyun:

with open('file.txt','r') as f:
    print(f.read())
First line
Second line
Third line

Misal - müəyyən sayda baytı oxuyun:

with open('file.txt','r') as f:
    print(f.read(8))
First li

söylə () və axtar ():

Tell () və seek () metodunun necə işlədiyini araşdırmadan əvvəl bir nümunəyə baxaq.

with open('file.txt','r') as f:
    print(f.read(8))
    print(f.read())
First li
ne
Second line
Third line

f.read (8): ilk 8 baytı oxuyur və mövcud fayl imlecini 9-cu bayta qoyur. Odur ki, biz bütün faylı oxuduqda 9-cu baytdan oxuyur.

Tell () fayl imlecinin mövqeyini qaytarır və axtarmaq () metodu imlecin yerini dəyişir.

with open('file.txt','r') as f:
    print(f.read(8))
    print(f.tell())
    print(f.seek(0)) #Takes the file cursor to initial position.
    print(f.read())
First li
8
0
First line
Second line
Third line

Döngü üçün istifadə edərək oxuyun:

Bir faylı satır sətirdən oxuya bilərik döngə üçün.

with open('file.txt','r') as f:
    for line in f:
        print(line)
First line

Second line

Third line

readline () və readlines () funksiyası:

Readline () funksiyası yeni sətir işarəsi daxil olmaqla bir sənədin ayrı sətirlərini oxuyur. Faylın sonuna çatdıqda boş bir dəyər qaytarır.

f= open('file.txt','r')
line_1=f.readline()
line_2=f.readline()
line_3=f.readline()
line_4=f.readline()
print(line_1)
print(line_2)
print(line_3)
print(line_4)
'First line\n'

'Second line\n'

'Third line\n'

Readlines () funksiyası bir sənədin qalan sətirlərini qaytarır. Readline () funksiyası kimi, faylın sonuna çatdıqda boş bir dəyər qaytarır.

f= open('file.txt','r')
line_1=f.readline()
lines=f.readlines()
print(line_1)
print(lines)
'First line\n'

["'Second line\\n'\n", "'Third line\\n'\n"]

Python Fayl İdarəetmə: Fayl metodları:

Yuxarıda göstərilən metodlardan əlavə, faylları idarə etmək üçün başqa üsullar da var.

Üsultəsvir
yaxın()Bir faylı açıqdırsa bağlayır. Fayl artıq bağlanmışsa heç nə etmir.
ayırmaq()Əsas mətn ikili tamponu "TextIOBase" dən ayırır və qaytarır.
fayl ()Faylın tam ədədi olan təsvirini qaytarır
qızarmaq()Fayl axınının yazma tamponunu təmizləyir.
isatty ()Fayl axını interaktivdirsə, True qaytarır.
oxu (n) Fayldan 'n' simvolları oxuyur. N mənfi və ya Yoxdursa, bütün faylı oxuyur.
oxunaqlı ()Fayl axını oxuna bilərsə True qaytarır.
oxu xətləri (n = -1)Fayldakı sətirlərin siyahısını oxuyur və qaytarır. Göstərildiyi təqdirdə 'n' bayt oxuyur.
axtarmaq (ofset, from = seek_set)Fayl mövqeyini 'from' (istinad, başlanğıc, cari, bitmə) ilə əlaqəli olaraq 'ofset' bayta dəyişdirir.
axtarılan ()Fayl axını təsadüfi girişi dəstəkləyirsə, True qaytarır.
danış ()Cari fayl mövqeyini qaytarır.
kəsmək (ölçü = Yoxdur)Fayl axınının ölçüsünü 'ölçülü' bayta qədər dəyişdirir. Ölçü göstərilmədikdə, cari yerə yenidən ölçüləndirilir.
yazılabilir ()Fayl axını yazıla bilərsə True qaytarır.
yazmaq'S' sətrini fayla yazır və yazılan simvol sayını qaytarır.
yazı sənədləri (sətirlər)Faylın sətirlərinin siyahısını yazır.
Translate »