1. Przygotowanie danych do zapisu
Na poprzednich wykładach nauczyliśmy się już pobierać dane z
stron internetowych za pomocą biblioteki BeautifulSoup
. Teraz pora
przekształcić nasze osiągnięcia web scrapingowe w coś użytecznego i
wygodnego do analizy. W końcu jeśli dane zostają tylko w
twoim skrypcie, niewiele z nich pożytku. Dzisiaj dowiemy się, jak
zapisywać dane w formatach CSV i Excel, bo wiadomo,
w życiu programisty, jak i w życiu kota, najważniejsze to znaleźć coś do jedzenia... tzn. zapisać.
Zanim zaczniemy przekształcać nasze dane w fajne tabelki, zatrzymajmy się na chwilę i przyjrzyjmy się, jak przygotować nasze dane do eksportu. Zazwyczaj dane, które pobieramy ze stron internetowych, są przedstawione w postaci list lub słowników. Warto je sformatować w taki sposób, aby były gotowe do eksportu w formacie tabeli.
Przykład danych
Załóżmy, że zebraliście następujące dane o książkach:
books = [
{"title": "Harry Potter i Kamień Filozoficzny", "author": "J. K. Rowling", "price": "350.00"},
{"title": "Władca Pierścieni", "author": "J. R. R. Tolkien", "price": "500.00"},
{"title": "Mistrz i Małgorzata", "author": "M. Bułhakow", "price": "450.00"}
]
2. Zapisywanie w formacie CSV
CSV
(Comma-Separated Values) — to prosty format tekstowy,
który pozwala przechowywać dane tabelaryczne. Każdy wiersz w
CSV
to rekord, a każda kolumna jest oddzielona
przecinkiem. Nauczmy się zapisywać nasze dane w tym
formacie.
Użycie biblioteki csv
Python oferuje nam wygodny moduł csv
,
który znacznie ułatwia pracę z
plikami CSV
. Oto jak można eksportować nasze dane o
książkach do CSV
:
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("Dane zostały zapisane w pliku books.csv")
Uwaga: Zawsze podawaj
newline=''
podczas otwierania pliku w trybie
w
, aby uniknąć dodatkowych pustych linii w
Windows.
Odczytywanie danych z CSV
Aby dopełnić obrazu, zobaczmy, jak odczytać dane
z powrotem z CSV
:
with open('books.csv', mode='r', encoding='utf-8') as file:
reader = csv.DictReader(file)
for row in reader:
print(row)
3. Zapisywanie w formacie Excel
Do pracy z Excel w Pythonie użyjemy biblioteki
pandas
. Pandas
pozwala łatwo
przekształcić nasze dane do DataFrame i eksportować je w
różnych formatach, w tym Excel.
Instalacja pandas
Jeśli jeszcze nie zainstalowaliście pandas
, zróbcie to
za pomocą pip:
pip install pandas openpyxl
Użycie pandas
do eksportu do Excel
Teraz zapiszmy nasze dane o książkach do Excel:
import pandas as pd
df = pd.DataFrame(books)
df.to_excel('books.xlsx', index=False, engine='openpyxl')
print("Dane zostały zapisane w pliku books.xlsx")
Odczytywanie danych z Excel
Jaką radość przynosi nie tylko tworzenie, ale także ponowne użycie stworzonego! Nauczmy się odczytywać dane z Excel:
df = pd.read_excel('books.xlsx')
print(df)
4. Błędy i ich obsługa
Jak w każdym innym aspekcie programowania, podczas eksportu
danych można napotkać błędy. Najczęściej
występujące są związane z nieprawidłowymi ścieżkami do plików
lub brakiem wymaganych bibliotek. Na przykład, jeśli zapomnicie
zainstalować openpyxl
, eksport do Excel się nie
powiedzie.
Sprawdzanie obecności plików
Zanim spróbujecie zapisać lub odczytać plik, warto
sprawdzić, czy on istnieje. Można to zrobić za pomocą modułu
os
:
import os
if os.path.exists('books.csv'):
print("Plik books.csv istnieje")
else:
print("Plik books.csv nie został znaleziony")
Nie uwierzycie, ale najczęstszy błąd początkujących to przypadkowe nadpisanie starych danych nowymi. Automatyzacja zapisywania historii plików to sztuka sama w sobie.
Nie zapomnijcie również uwzględnić obsługi błędów za pomocą
konstrukcji try-except
, aby wasz skrypt nie
przestawał działać przy pierwszym napotkanym problemie.
GO TO FULL VERSION