1. Formatowanie dat i czasu
Witaj na naszym trzecim wykładzie o pracy z datą i czasem w Pythonie! Dziś na tapecie mamy niezwykle ważny temat, który pomoże twoim raportom i logom być nie tylko funkcjonalnymi, ale również estetycznie przyjemnymi — to formatowanie dat i czasu. Sprawimy, że twoje raporty będą piękne i wygodne, bo nikt nie lubi bałaganu, nawet w kodzie!
Czy kiedykolwiek zastanawiałeś się, dlaczego data w niektórych raportach wygląda tak niezrozumiale? To jak wybór między standardami: wybrać ISO 8601, żeby zaimponować kolegom, czy zostawić wszystko w znajomych formatach? Zobaczmy, jak za pomocą Pythona można elegancko formatować daty i czas, aby wyglądało to tak, jakbyś był programistą, który dokładnie wie, co robi.
W świecie Pythona istnieje świetna metoda strftime()
, która pozwala przekształcać obiekty datetime
w stringi, formatując je zgodnie z twoimi potrzebami. Zacznijmy od podstawowej składni, a potem przyjrzymy się kilku przykładom formatowania.
from datetime import datetime
# Pobieramy aktualną datę i czas
now = datetime.now()
# Formatujemy aktualną datę i czas do czytelnego stringa
formatted_date = now.strftime("%Y-%m-%d %H:%M:%S")
print("Aktualna data i czas:", formatted_date)
Najczęściej używane kody formatowania:
%Y
: Pełny rok (np. 2023)%m
: Miesiąc jako liczba (np. 01 dla stycznia)%d
: Dzień miesiąca (np. 01 dla pierwszego dnia miesiąca)%H
: Godziny w formacie 24-godzinnym%M
: Minuty%S
: Sekundy
No więc teraz, gdy już możemy przekształcać daty i czas, przejdźmy do wyboru, który z licznych formatów pasuje do naszego zastosowania. A tak w ogóle, czy wiedziałeś, że w świecie programowania, jeśli nie wiesz, w jakim formacie przedstawiona jest data, możesz napisać całą książkę na ten temat, zanim znajdziesz odpowiedni wariant?
Przykłady formatowania dla logów i raportów
Formatowanie to nie tylko kwestia estetyki. To również dostarczanie czytelnych informacji dla innych. Przykłady zastosowania formatowania mogą być bardzo różnorodne:
- Logi plikowe:
Jeśli twój skrypt zapisuje zdarzenia do pliku logu, to często trzeba w nich rejestrować czas zdarzeń. To nie tylko pomaga śledzić proces pracy skryptu, ale również ułatwia debugowanie.
Pythonlog_time = now.strftime("%Y-%m-%d %H:%M:%S") log_entry = f"[{log_time}] Wydarzenie: skrypt rozpoczął działanie." print(log_entry)
- Raporty i dokumenty:
Jeśli generujesz raporty w formacie PDF lub Excel, posiadanie sformatowanej daty w nagłówku lub stopce może być dużym atutem.
Pythonreport_date = now.strftime("%d.%m.%Y") print(f"Raport został wygenerowany na datę: {report_date}")
Elastyczność formatowania
Możesz łączyć kody formatowania, aby tworzyć praktycznie każdy format, jaki jest ci potrzebny.
Powiedzmy, że potrzebujesz formatu jak w starych filmach, aby zaimponować swojemu szefowi:
vintage_format = now.strftime("%A, %B %d, %Y at %I:%M %p")
print("Wintage'owa data:", vintage_format)
Tutaj kody %A
, %B
, %I
, %p
są używane do wyświetlenia pełnej nazwy dnia tygodnia, pełnej nazwy miesiąca, godzin w formacie 12-godzinnym i oznaczenia AM/PM odpowiednio. Czasami odrobina retro sprawia, że nawet najnowocześniejsze raporty są bardziej interesujące!
Typowe błędy i jak ich unikać
Jeśli chodzi o formatowanie, często spotykanym błędem jest niepoprawne użycie kodów formatowania. Na przykład zamiana małej litery m
na dużą M
przy wyświetlaniu minut lub miesięcy może prowadzić do zabawnych rezultatów. W takich momentach, gdyby kody od czasu do czasu nie działały poprawnie, proste formatowanie mogłoby zamienić się w komedię pomyłek.
Zawsze sprawdzaj swój format za pomocą dokumentacji Pythona strftime() i strptime(), jeśli masz wątpliwości co do składni.
Praktyczne zastosowanie formatowania
Wyobraź sobie, że piszesz skrypt, który zbiera statystyki z witryny internetowej co godzinę. Wszystkie dane są zapisywane w CSV, a każdy plik jest nazwany aktualną datą i czasem uruchomienia zbierania danych. Oto przykład, jak mógłbyś to zaimplementować:
import os
def save_data(data):
file_time = datetime.now().strftime("%Y%m%d_%H%M%S")
file_name = f"data_{file_time}.csv"
# Tutaj zamiast os rozdziel swoją logikę biznesową dla zapisu danych
print(f"Dane zapisane w pliku: {file_name}")
# Symulacja danych i wywołania funkcji
dummy_data = "jakieś użyteczne dane"
save_data(dummy_data)
Zapisywanie plików z datami w ich nazwach nie tylko ułatwia organizację danych, ale również umożliwia ich szybkie odnalezienie w razie potrzeby.
Formatowanie dat i czasu to umiejętność otwierająca wiele drzwi w świecie automatyzacji. Twoje skrypty będą dokładniejsze, twoje raporty — bardziej zrozumiałe, a to jest po prostu frajda dla oka. Kto by pomyślał, że samo formatowanie może przynieść tyle radości?
Na tym kończymy nasz wykład. Nie zapomnij poćwiczyć różnych formatów, tworząc swoje unikalne raporty i logi. Do zobaczenia na następnym zajęciu, gdzie będziemy badać interwały czasowe i jak mogą one pomóc w automatyzacji zadań na podstawie czasu.
GO TO FULL VERSION