5.1 İkili Məlumatlar
Python-da ikili fayllarla iş, mətn faylları ilə işdən bir az fərqlənir, çünki ikili fayllar insanın oxuması üçün nəzərdə tutulmayan formatda məlumatlar saxlayır. Mətnlərin əvəzinə, ikili fayllar baytlarla işləyir.
İkili fayllarla işləmək üçün open()
funksiyası istifadə edilir və rejim olaraq 'b'
hərfi göstərilir (məsələn, oxumaq üçün 'rb'
, yazmaq üçün 'wb'
və s.).
İkili faylların açılma nümunələri:
- Oxumaq:
'rb'
- Yazmaq:
'wb'
- Əlavə etmək:
'ab'
- Oxumaq və yazmaq:
'r+b'
,'w+b'
,'a+b'
Nümunə:
file = open('example.bin', 'rb')
content = file.read()
print(content)
file.close()
'content'
dəyişəni bayt massivini saxlayacaq.
İkili məlumatlar (baytlar) — məlumatların ən aşağı, ən əsas səviyyədə təqdim olunmasıdır. Hər hansı bir məlumat ikili olaraq oxuna bilər.
Bu o deməkdir ki, mətn faylını həmişə ikili olaraq oxumaq mümkündür, amma hər bir ikili faylı mətn kimi şərh etmək mümkün deyil.
5.2 İkili faylları oxumaq
Faylın bütün məzmununu oxumaq
read()
metodu fayldakı bütün məzmunu byte-lar şəklində oxuyur.
Nümunə:
file = open('example.bin', 'rb')
content = file.read()
print(content)
file.close()
Müəyyən sayda byte oxumaq
read(n)
metodu fayldan n
byte oxuyur.
Nümunə:
file = open('example.bin', 'rb')
content = file.read(10) # İlk 10 byte oxuyur
print(content)
file.close()
Sətir-sətir oxumaq
readline()
metodu fayldan bir sətir oxuyur. İkili fayllar üçün sətir yeni sətir simvolu ilə bitir (\n)
.
Nümunə:
file = open('example.bin', 'rb')
line = file.readline()
print(line)
file.close()
Bütün sətirləri oxumaq
readlines()
metodu fayldan bütün sətirləri oxuyur və onları byte-lar siyahısı kimi geri qaytarır.
Nümunə:
file = open('example.bin', 'rb')
lines = file.readlines()
for line in lines:
print(line)
file.close()
Mətn işləmək üçün nəzərdə tutulmuş metodlar düzgün işləməyə bilər, əgər məzmun mətn deyilsə: məsələn, arxiv, şəkil və ya video.
5.3 Binari məlumatların yazılması
write()
metodu fayla baytlar yazır. Yazılacaq məlumatlar (bytes)
formatında olmalıdır.
Şəkillərin oxunması və yazılması
Şəkli fayldan oxuyub başqa bir fayla yazmaq.
# Şəkli oxumaq
with open('input_image.jpg', 'rb') as infile:
image_data = infile.read()
# Şəkli yazmaq
with open('output_image.jpg', 'wb') as outfile:
outfile.write(image_data)
Həmçinin mətn məlumatlarını da yazmaq mümkündür:
Nümunə:
data = b"Salam, Dünya!"
lines = [b"Birinci sətir.\n", b"Ikinci sətir.\n", b"Üçüncü sətir.\n"]
file = open('example.bin', 'wb')
file.write(data)
file.writelines(lines)
file.close()
GO TO FULL VERSION