1. Verilərin saxlanması üçün hazırlanması
Əvvəlki dərslərdə biz artıq BeautifulSoup
kitabxanasını istifadə edərək veb səhifələrdən veriləri çıxarmağı öyrəndik. İndi isə skreyping uğurlarımızı analiz üçün daha faydalı və rahat bir şeyə çevirməyin vaxtı gəldi. Axı, verilər yalnız sizin scriptinizdə qalsa, onlardan çox az istifadə olur. Bu gün biz veriləri CSV və Excel formatında necə saxlamağı öyrənəcəyik, çünki məlumdur ki, proqramçının həyatında, pişik həyatında olduğu kimi, əsas məsələ yemək tapmaqdır... yəni, demək istəyirəm ki, saxlamaqdır.
Verilərimizi əyləncəli cədvəllərə çevirməyə başlamazdan əvvəl, gəlin qısa bir an dayanaq və verilərimizi ixrac üçün necə hazırlayacağımıza baxaq. Adətən, veb səhifələrdən çıxardığımız verilər siyahı və ya lüğət şəklində təqdim olunur. Onları elə formatlamaq yaxşı olar ki, cədvəl formatına ixrac etməyə hazır olsunlar.
Veri nümunəsi
Təsəvvür edin ki, siz kitablar haqqında belə məlumatlar toplamısınız:
books = [
{"title": "Harri Poter və Fəlsəfə Daşı", "author": "C. K. Roulinq", "price": "350.00"},
{"title": "Üzük Hökmranı", "author": "C. R. R. Tolkin", "price": "500.00"},
{"title": "Usta və Marqarita", "author": "M. A. Bulqakov", "price": "450.00"}
]
2. CSV
formatında saxlanma
CSV
(Comma-Separated Values) — sadə mətn formatıdır, hansında ki, cədvəl məlumatları saxlanılır. CSV
-də hər sətr bir qeyd təşkil edir və hər sütun vergüllərlə ayrılır. Gəlin, məlumatlarımızı bu formatda necə saxlamaq lazım olduğunu öyrənək.
csv
kitabxanasından istifadə
Python csv
adlı bir modul təklif edir ki, bu da CSV
faylları ilə işləməni əhəmiyyətli dərəcədə asanlaşdırır. Budur, kitablarımız haqqında məlumatları CSV
-ə necə ixrac edə bilərik:
import csv
with open('books.csv', mode='w', newline='', encoding='utf-8') as file:
writer = csv.DictWriter(file, fieldnames=["title", "author", "price"])
writer.writeheader()
writer.writerows(books)
print("Məlumatlar uğurla books.csv faylına saxlanıldı")
Nəzərə alın: faylı w
rejimində açarkən həmişə newline=''
göstərin ki, Windows-da əlavə boş sətirlərdən qaçasınız.
CSV
formatından məlumatların oxunması
Tam mənzərə üçün gəlin məlumatları CSV
formatından necə geri oxumağı nəzərdən keçirək:
with open('books.csv', mode='r', encoding='utf-8') as file:
reader = csv.DictReader(file)
for row in reader:
print(row)
3. Excel formatında saxlanılma
Python ilə Excel üzərində işləmək üçün pandas
kitabxanasından istifadə edəcəyik. Pandas
məlumatlarımızı asanlıqla DataFrame-ə çevirmək və müxtəlif formatlarda, o cümlədən Excel-də, ixrac etmək imkanı verir.
pandas
-ın quraşdırılması
Əgər hələ pandas
quraşdırmamısınızsa, bunu pip vasitəsilə etmək mümkündür:
pip install pandas openpyxl
Excel-ə ixrac üçün pandas
-dan istifadə
İndi kitab məlumatlarımızı Excel-də necə saxladığımıza baxaq:
import pandas as pd
df = pd.DataFrame(books)
df.to_excel('books.xlsx', index=False, engine='openpyxl')
print("Məlumatlar books.xlsx faylında uğurla saxlanıldı")
Excel-dən məlumatların oxunması
Yalnız yaradılması deyil, həm də yaradılanların təkrar istifadəsi necə də sevindiricidir! Gəlin Excel-dən məlumatları oxumağı öyrənək:
df = pd.read_excel('books.xlsx')
print(df)
4. Səhvlər və onların emalı
Proqramlaşdırmanın hər hansı digər aspektində olduğu kimi, məlumatları ixrac edərkən də səhvlərlə qarşılaşmaq mümkündür. Ən çox yayılan problemlər faylların düzgün yollarının olmaması və ya lazım olan kitabxanaların çatışmazlığı ilə bağlı olur. Məsələn, openpyxl
kitabxanasını quraşdırmağı unutsaq, Excel-ə ixrac etmək mümkün olmayacaq.
Faylların mövcudluğunu yoxlamaq
Faylı yazmağa və ya oxumağa çalışmazdan əvvəl onun mövcud olub-olmamasını yoxlamaq faydalıdır. Bunun üçün os
modulundan istifadə edə bilərsiniz:
import os
if os.path.exists('books.csv'):
print("Fayl books.csv mövcuddur")
else:
print("Fayl books.csv tapılmadı")
İnanmayacaqsınız, amma yeni başlayanların ən yayılmış səhvlərindən biri köhnə məlumatları təsadüfən yeniləri ilə əvəz etməkdir. Fayl tarixçəsinin saxlanmasını avtomatlaşdırmaq bir sənətdir.
Həmçinin, ilk problem yaranan kimi skriptin dayanmasının qarşısını almaq üçün try-except
konstruksiyalarından istifadə edərək səhv emalı daxil etməyi unutmayın.
GO TO FULL VERSION