Automatyzacja nudnych zadań z Pythonem. Nauka programowania - Helion
Tytuł oryginału: Automate the Boring Stuff with Python: Practical Programming for Total Beginners
Tłumaczenie: Robert Górczyński
ISBN: 978-83-283-3260-7
stron: 560, Format: 170x230, okładka: miękka
Data wydania: 2017-04-21
Księgarnia: Helion
Cena książki: 53,40 zł (poprzednio: 89,00 zł)
Oszczędzasz: 40% (-35,60 zł)
Komputer jest niezwykle wszechstronnym narzędziem, które może posłużyć do błyskawicznego wykonywania przeróżnych czynności. Dotyczy to również zadań, które zwykle zajmują mnóstwo czasu, a przy tym są męczące i nudne. Zamiast przez wiele godzin porównywać czy wprowadzać dane, lepiej dobrze zaprogramować komputer, który wykona takie zadania w ciągu kilku sekund. Aby to osiągnąć, wcale nie trzeba być profesjonalnym programistą!
Jeśli nie masz pojęcia o programowaniu, ale chcesz wykorzystać komputer do automatyzacji prostych, powtarzalnych operacji, trzymasz w ręku właściwą książkę. Podstawy programowania przedstawiono tu w sposób klarowny i zrozumiały, poszczególne działania wyjaśniono krok po kroku, a propozycje praktycznych projektów pozwalają na gruntowne przyswojenie materiału i poszerzenie wiedzy. Do nauki wykorzystano język Python, ponieważ jest on stosunkowo prosty, popularny, a przy tym wciąż rozwijany. Szybko przekonasz się, ile czasu i wysiłku można zaoszczędzić dzięki automatyzacji zadań za pomocą krótkich i łatwych programów!
W książce znajdziesz między innymi:
- podstawy programowania w Pythonie
- opis kontroli przepływu działania programu
- informacje o pracy na danych tekstowych i plikach
- wiadomości o pracy z plikami CSV i danymi JSON
- harmonogramy zadań i opis kontroli czasu uruchamiania programu
- możliwości kontrolowania klawiatury i myszy za pomocą automatyzacji GUI
Niech Twój komputer Cię wyręczy!
Albert Sweigart — programista, projektant oprogramowania i nauczyciel kodowania. Autor licznych książek o Pythonie dla początkujących. Sweigart urodził się w Houston, w stanie Teksas, a obecnie mieszka w San Francisco. Prowadzi blog dostępny pod adresem: http://coffeeghost.net.
Osoby które kupowały "Automatyzacja nudnych zadań z Pythonem. Nauka programowania", wybierały także:
- Superinteligencja. Scenariusze, strategie, zagro 66,67 zł, (14,00 zł -79%)
- Poradnik design thinking - czyli jak wykorzysta 48,28 zł, (14,00 zł -71%)
- Kosymulacja. Elastyczne projektowanie i symulacja wielodomenowa 38,39 zł, (11,90 zł -69%)
- F# 4.0 dla zaawansowanych. Wydanie IV 96,45 zł, (29,90 zł -69%)
- Systemy reaktywne. Wzorce projektowe i ich stosowanie 65,31 zł, (20,90 zł -68%)
Spis treści
Automatyzacja nudnych zadań z Pythonem. Nauka programowania -- spis treści
O autorze (21)
O recenzencie technicznym (21)
Podziękowania (23)
Wprowadzenie (25)
- Do kogo jest skierowana ta książka? (26)
- Konwencje (27)
- Czym jest programowanie? (27)
- Co to jest Python? (28)
- Programiści nie muszą dobrze znać matematyki (28)
- Programowanie to aktywność kreatywna (29)
- O tej książce (30)
- Pobieranie i instalacja Pythona (31)
- Uruchomienie środowiska IDLE (33)
- Powłoka interaktywna (33)
- Jak otrzymać pomoc? (34)
- Sprytne zadawanie pytań dotyczących programowania (35)
- Podsumowanie (36)
CZĘŚĆ I. PODSTAWY PROGRAMOWANIA W PYTHONIE (37)
1. Podstawy Pythona (39)
- Wprowadzanie wyrażeń w powłoce interaktywnej (40)
- Liczby całkowite, zmiennoprzecinkowe i ciągi tekstowe (43)
- Konkatenacja i replikacja ciągu tekstowego (43)
- Przechowywanie wartości w zmiennych (45)
- Polecenia przypisania (45)
- Nazwy zmiennych (47)
- Twój pierwszy program (48)
- Analiza programu (49)
- Polecenia (49)
- Funkcja print() (50)
- Funkcja input() (50)
- Wyświetlanie imienia użytkownika (50)
- Funkcja len() (51)
- Funkcje str(), int() i float() (52)
- Podsumowanie (55)
- Pytania kontrolne (56)
2. Kontrola przepływu działania programu (59)
- Wartości boolowskie (60)
- Operatory porównania (61)
- Operatory boolowskie (63)
- Binarne operatory boolowskie (63)
- Operator not (64)
- Łączenie operatorów boolowskich i porównania (65)
- Elementy kontroli przepływu działania programu (65)
- Warunek (66)
- Blok kodu (66)
- Wykonywanie programu (66)
- Polecenia kontroli przepływu działania programu (67)
- Polecenie if (67)
- Polecenie else (68)
- Polecenie elif (69)
- Pętla while (74)
- Polecenie break (78)
- Polecenie continue (79)
- Pętla for i funkcja range() (83)
- Import modułów (87)
- Polecenie from import (88)
- Wcześniejsze zakończenie programu za pomocą sys.exit() (88)
- Podsumowanie (89)
- Pytania kontrolne (89)
3. Funkcje (91)
- Polecenie def wraz z parametrami (93)
- Wartość zwrotna funkcji i polecenie return (93)
- Wartość None (95)
- Argumenty w postaci słów kluczowych i funkcja print() (96)
- Zasięgi lokalny i globalny (97)
- Zmienne lokalne nie mogą być używane w zasięgu globalnym (98)
- W zasięgu lokalnym nie można używać zmiennych zdefiniowanych w innych zasięgach lokalnych (99)
- Zmienna globalna może być używana w zasięgu lokalnym (99)
- Zmienna lokalna i globalna o takiej samej nazwie (100)
- Polecenie global (101)
- Obsługa wyjątków (103)
- Krótki program - odgadnij liczbę (105)
- Podsumowanie (107)
- Pytania kontrolne (108)
- Projekt praktyczny (108)
- Problem Collatza (109)
- Weryfikacja danych wyjściowych (109)
4. Listy (111)
- Typ danych List (111)
- Pobieranie poszczególnych wartości listy za pomocą indeksu (112)
- Indeks ujemny (114)
- Pobieranie podlisty za pomocą wycinka (114)
- Pobieranie długości listy za pomocą polecenia len() (115)
- Zmiana wartości na liście za pomocą indeksu (115)
- Konkatenacja i replikacja listy (116)
- Usunięcie wartości listy za pomocą polecenia del (116)
- Praca z listą (116)
- Użycie pętli for wraz z listą (118)
- Operatory in i not in (119)
- Sztuczka pozwalająca na wiele jednoczesnych operacji przypisania (120)
- Operatory przypisania i zmiany wartości (121)
- Metody (122)
- Odszukanie wartości na liście za pomocą metody index() (122)
- Dodanie wartości do listy za pomocą metod append() i insert() (123)
- Usuwanie wartości z listy za pomocą metody remove() (124)
- Sortowanie wartości listy za pomocą metody sort() (124)
- Przykładowy program - Magic 8 Ball utworzony za pomocą listy (126)
- Typy przypominające listę - ciąg tekstowy i krotka (127)
- Modyfikowalne i niemodyfikowalne typy danych (128)
- Typ danych krotka (130)
- Konwersja typu za pomocą funkcji list() i tuple() (131)
- Odwołania (132)
- Przekazywanie odwołania (134)
- Funkcje copy() i deepcopy() modułu copy (135)
- Podsumowanie (136)
- Pytania kontrolne (136)
- Projekty praktyczne (137)
- Kod z przecinkami (137)
- Obraz na podstawie macierzy (137)
5. Słowniki i strukturyzacja danych (139)
- Typ danych Dictionary (139)
- Słownik kontra lista (140)
- Metody keys(), values() i items() (142)
- Sprawdzenie, czy klucz lub wartość istnieją w słowniku (143)
- Metoda get() (144)
- Metoda setdefault() (144)
- Eleganckie wyświetlanie danych (146)
- Użycie struktur danych do modelowania rzeczywistych rozwiązań (147)
- Plansza do gry w kółko i krzyżyk (148)
- Zagnieżdżone słowniki i listy (152)
- Podsumowanie (154)
- Pytania kontrolne (154)
- Projekty praktyczne (154)
- Inwentarz w grze fantasy (155)
- Funkcja konwertująca listę na słownik dla inwentarza w grze fantasy (155)
6. Operacje na ciągach tekstowych (157)
- Praca z ciągami tekstowymi (157)
- Literały ciągu tekstowego (158)
- Indeksowanie i wycinanie ciągów tekstowych (161)
- Użycie operatorów in i not in podczas pracy z ciągami tekstowymi (162)
- Użyteczne metody ciągu tekstowego (162)
- Metody upper(), lower(), isupper() i islower() (162)
- Metody typu isX() (164)
- Metody startswith() i endswith() (166)
- Metody join() i split() (167)
- Wyrównywanie tekstu za pomocą metod rjust(), ljust() i center() (168)
- Usunięcie białych znaków za pomocą strip(), rstrip() i lstrip() (170)
- Kopiowanie i wklejanie ciągów tekstowych za pomocą modułu pyperclip (171)
- Projekt - menedżer haseł (172)
- Etap 1. Projekt programu i struktur danych (172)
- Etap 2. Obsługa argumentów wiersza poleceń (173)
- Etap 3. Skopiowanie odpowiedniego hasła (173)
- Projekt - dodanie wypunktowania do kodu znaczników Wiki (175)
- Etap 1. Kopiowanie i wklejanie ze schowka (175)
- Etap 2. Rozdzielenie wierszy tekstu i dodanie gwiazdki (176)
- Etap 3. Złączenie zmodyfikowanych wierszy (177)
- Podsumowanie (177)
- Pytania kontrolne (178)
- Projekt praktyczny (179)
- Wyświetlenie tabeli (179)
CZĘŚĆ II. AUTOMATYZACJA ZADAŃ (181)
7. Dopasowanie wzorca za pomocą wyrażeń regularnych (183)
- Wyszukiwanie wzorców w tekście bez użycia wyrażeń regularnych (184)
- Wyszukiwanie wzorców w tekście z użyciem wyrażeń regularnych (186)
- Tworzenie obiektów wyrażeń regularnych (187)
- Dopasowanie obiektów wyrażeń regularnych (187)
- Przegląd dopasowania za pomocą wyrażenia regularnego (189)
- Jeszcze więcej o dopasowaniach wzorca za pomocą wyrażeń regularnych (189)
- Grupowanie z użyciem nawiasów (189)
- Dopasowanie wielu grup za pomocą potoku (190)
- Opcjonalne dopasowanie za pomocą znaku zapytania (191)
- Dopasowanie zera wystąpień lub większej liczby wystąpień za pomocą gwiazdki (192)
- Dopasowanie jednego wystąpienia lub wielu wystąpień za pomocą plusa (193)
- Dopasowanie określonych powtórzeń za pomocą nawiasu klamrowego (193)
- Dopasowanie zachłanne i niezachłanne (194)
- Metoda findall() (195)
- Klasy znaków (196)
- Utworzenie własnej klasy znaków (197)
- Znaki ^ oraz $ (198)
- Znak wieloznaczny (199)
- Dopasowanie wszystkiego za pomocą kropki i gwiazdki (199)
- Dopasowanie znaku nowego wiersza za pomocą kropki (200)
- Przegląd znaków stosowanych w wyrażeniach regularnych (200)
- Dopasowanie bez uwzględnienia wielkości znaków (201)
- Zastępowanie ciągu tekstowego za pomocą metody sub() (202)
- Zarządzanie skomplikowanymi wyrażeniami regularnymi (203)
- Połączenie opcji re.IGNORECASE, re.DOTALL i re.VERBOSE (203)
- Projekt - wyodrębnianie numeru telefonu i adresu e-mail (204)
- Etap 1. Utworzenie wyrażenia regularnego dopasowującego numer telefonu (205)
- Etap 2. Utworzenie wyrażenia regularnego dopasowującego adres e-mail (206)
- Etap 3. Wyszukanie wszystkich dopasowań w tekście umieszczonym w schowku (207)
- Etap 4. Połączenie dopasowań w celu utworzenia pojedynczego ciągu tekstowego do umieszczenia w schowku (208)
- Uruchomienie programu (208)
- Pomysły na podobne programy (209)
- Podsumowanie (209)
- Pytania kontrolne (210)
- Projekty praktyczne (211)
- Wykrywanie silnego hasła (212)
- Oparta na wyrażeniu regularnym wersja metody strip() (212)
8. Odczyt i zapis plików (213)
- Pliki i ścieżki dostępu do plików (213)
- Lewy ukośnik w systemie Windows, prawy ukośnik w systemach macOS i Linux (214)
- Bieżący katalog roboczy (215)
- Względne kontra bezwzględne ścieżki dostępu (216)
- Tworzenie nowych katalogów za pomocą funkcji os.makedirs() (216)
- Moduł os.path (217)
- Obsługa bezwzględnych i względnych ścieżek dostępu (217)
- Ustalenie wielkości pliku i zawartości katalogu (220)
- Sprawdzenie poprawności ścieżki dostępu (221)
- Proces odczytu i zapisu pliku (222)
- Otwieranie pliku za pomocą funkcji open() (223)
- Odczyt zawartości pliku (224)
- Zapis pliku (225)
- Zapis zmiennych za pomocą modułu shelve (226)
- Zapis zmiennych za pomocą funkcji pprint.pformat() (227)
- Projekt - generowanie losowych plików quizu (229)
- Etap 1. Umieszczenie danych quizu w słowniku (229)
- Etap 2. Utworzenie pliku quizu i losowe umieszczenie odpowiedzi na pytania (230)
- Etap 3. Utworzenie odpowiedzi (231)
- Etap 4. Zapis treści w plikach quizu i odpowiedzi (232)
- Projekt - schowek przechowujący wiele elementów (234)
- Etap 1. Komentarze i konfiguracja pliku binarnego (235)
- Etap 2. Zapis zawartości schowka wraz ze słowem kluczowym (235)
- Etap 3. Wyświetlenie słów kluczowych i wczytanie treści powiązanej ze słowem kluczowym (236)
- Podsumowanie (237)
- Pytania kontrolne (237)
- Projekty praktyczne (238)
- Rozbudowa programu schowka przechowującego wiele elementów (238)
- Program Mad Libs (238)
- Wyszukiwanie wyrażenia regularnego (239)
9. Organizacja plików (241)
- Moduł shutil (242)
- Kopiowanie plików i katalogów (242)
- Przenoszenie oraz zmiana nazwy plików i katalogów (243)
- Trwałe usunięcie plików i katalogów (245)
- Bezpieczne usuwanie danych za pomocą modułu send2trash (246)
- Przejście przez drzewo katalogu (246)
- Kompresja plików za pomocą modułu zipfile (248)
- Odczyt pliku w formacie ZIP (248)
- Wyodrębnianie plików z archiwum ZIP (249)
- Utworzenie i dodawanie elementów do archiwum ZIP (250)
- Projekt - zmiana plików z datami w stylu amerykańskim na daty w stylu europejskim (251)
- Etap 1. Utworzenie wyrażenia regularnego dla daty w stylu amerykańskim (251)
- Etap 2. Identyfikacja w nazwie pliku fragmentów określających datę (253)
- Etap 3. Utworzenie nowej nazwy pliku i zmiana nazw plików (254)
- Pomysły na podobne programy (255)
- Projekt - utworzenie archiwum ZIP będącego kopią katalogu (255)
- Etap 1. Ustalenie nazwy pliku archiwum ZIP (256)
- Etap 2. Utworzenie nowego archiwum ZIP (257)
- Etap 3. Przejście przez drzewo katalogu i dodanie plików do archiwum ZIP (258)
- Pomysły na podobne programy (259)
- Podsumowanie (259)
- Pytania kontrolne (260)
- Projekty praktyczne (260)
- Kopiowanie selektywne (260)
- Usunięcie niepotrzebnych plików (260)
- Wypełnienie przerw (260)
10. Usuwanie błędów (261)
- Zgłaszanie wyjątku (262)
- Pobranie stosu wywołań w postaci ciągu tekstowego (264)
- Asercje (265)
- Użycie asercji w projekcie symulacji ulicznej sygnalizacji świetlnej (266)
- Wyłączenie asercji (268)
- Rejestracja danych (268)
- Użycie modułu logging (268)
- Nie przeprowadzaj procesu usuwania błędów za pomocą funkcji print() (270)
- Poziomy rejestrowania informacji (271)
- Wyłączenie rejestrowania informacji (272)
- Rejestrowanie informacji w pliku (273)
- Debugger środowiska IDLE (273)
- Go (274)
- Step (274)
- Over (274)
- Out (275)
- Quit (275)
- Debugowanie programu sumującego liczby (275)
- Punkty kontrolne (277)
- Podsumowanie (279)
- Pytania kontrolne (280)
- Projekt praktyczny (281)
- Debugowanie programu symulującego rzut monetą (281)
11. Pobieranie danych z internetu (283)
- Projekt - mapIt.py z użyciem modułu webbrowser (284)
- Etap 1. Ustalenie adresu URL (285)
- Etap 2. Obsługa argumentów wiersza poleceń (285)
- Etap 3. Obsługa zawartości schowka i uruchomienie przeglądarki WWW (286)
- Pomysły na podobne programy (287)
- Pobieranie plików z internetu za pomocą modułu requests (287)
- Pobieranie strony internetowej za pomocą funkcji requests.get() (288)
- Sprawdzenie pod kątem błędów (289)
- Zapis pobranych plików na dysku twardym (290)
- HTML (291)
- Zasoby pomagające w poznawaniu języka HTML (291)
- Krótkie wprowadzenie (292)
- Wyświetlenie kodu źródłowego HTML strony internetowej (293)
- Wyświetlenie oferowanych przez przeglądarkę WWW narzędzi programistycznych (293)
- Użycie narzędzi programistycznych do wyszukiwania elementów HTML (296)
- Przetwarzanie kodu HTML za pomocą modułu Beautiful Soup (297)
- Utworzenie obiektu BeautifulSoup na podstawie kodu HTML (297)
- Wyszukiwanie elementu za pomocą metody select() (298)
- Pobieranie danych z atrybutów elementu (300)
- Projekt - wyszukiwanie typu "szczęśliwy traf" w Google (301)
- Etap 1. Pobranie argumentów wiersza poleceń i żądanie strony wyszukiwarki (301)
- Etap 2. Wyszukanie wszystkich wyników (302)
- Etap 3. Otworzenie kart przeglądarki WWW dla poszczególnych wyników (303)
- Pomysły na podobne programy (304)
- Projekt - pobranie wszystkich komiksów z witryny XKCD (304)
- Etap 1. Projekt programu (306)
- Etap 2. Pobranie strony internetowej (307)
- Etap 3. Odszukanie i pobranie obrazu komiksu (307)
- Etap 4. Zapis obrazu i odszukanie poprzedniego komiksu (308)
- Pomysły na podobne programy (310)
- Kontrolowanie przeglądarki WWW za pomocą modułu selenium (310)
- Uruchomienie przeglądarki WWW kontrolowanej przez moduł selenium (310)
- Wyszukanie elementów na stronie (311)
- Kliknięcie na stronie (314)
- Wypełnianie i wysyłanie formularzy sieciowych (314)
- Symulacja naciśnięcia klawiszy specjalnych (315)
- Klikanie przycisków przeglądarki WWW (316)
- Więcej informacji na temat modułu selenium (316)
- Podsumowanie (316)
- Pytania kontrolne (316)
- Projekty praktyczne (317)
- Klient poczty działający w wierszu poleceń (318)
- Pobieranie obrazów z witryny internetowej (318)
- 2048 (318)
- Weryfikacja łącza (318)
12. Praca z arkuszami kalkulacyjnymi programu Excel (319)
- Dokumenty Excela (320)
- Instalacja modułu openpyxl (320)
- Odczyt dokumentów Excela (321)
- Otwieranie istniejącego dokumentu Excela za pomocą openpyxl (321)
- Pobranie arkuszy ze skoroszytu (322)
- Pobieranie komórek z arkuszy (322)
- Konwersja między literami kolumn i liczbami (324)
- Pobieranie wierszy i kolumn z arkuszy (325)
- Skoroszyty, arkusze i komórki (327)
- Projekt - odczyt danych z arkusza kalkulacyjnego (327)
- Etap 1. Odczyt danych z arkusza kalkulacyjnego (328)
- Etap 2. Wypełnienie struktury danych (329)
- Etap 3. Zapis wyników do pliku (331)
- Pomysły na podobne programy (332)
- Zapis dokumentów Excela (332)
- Tworzenie i zapisywanie dokumentów Excela (332)
- Tworzenie i usuwanie arkuszy kalkulacyjnych (333)
- Zapis wartości w komórkach (334)
- Projekt - uaktualnienie skoroszytu (335)
- Etap 1. Przygotowanie struktury danych wraz z uaktualnionymi informacjami (336)
- Etap 2. Sprawdzenie wszystkich wierszy i skorygowanie nieprawidłowych cen (337)
- Pomysły na podobne programy (338)
- Ustawienie stylu czcionki komórek (338)
- Obiekt Font (339)
- Formuły (341)
- Dostosowanie wierszy i kolumn do własnych potrzeb (342)
- Ustalenie wysokości wiersza i szerokości kolumny (343)
- Łączenie i dzielenie komórki (343)
- Zablokowane okienka (344)
- Wykresy (345)
- Podsumowanie (348)
- Pytania kontrolne (348)
- Projekty praktyczne (349)
- Program tworzący tabliczkę mnożenia (349)
- Program wstawiający pusty wiersz (350)
- Program zmieniający położenie komórek arkusza kalkulacyjnego (350)
- Przeniesienie zawartości pliku tekstowego do arkusza kalkulacyjnego (351)
- Przeniesienie zawartości arkusza kalkulacyjnego do plików tekstowych (351)
13. Praca z dokumentami PDF i Worda (353)
- Dokumenty w formacie PDF (353)
- Wyodrębnianie tekstu z dokumentu PDF (354)
- Deszyfrowanie dokumentu PDF (356)
- Tworzenie dokumentów PDF (357)
- Projekt - połączenie wybranych stron z wielu dokumentów PDF (362)
- Etap 1. Wyszukanie wszystkich plików w formacie PDF (363)
- Etap 2. Otworzenie poszczególnych dokumentów PDF (364)
- Etap 3. Dodanie poszczególnych stron (364)
- Etap 4. Zapis dokumentu wynikowego (365)
- Pomysły na podobne programy (366)
- Dokumenty procesora tekstu Microsoft Word (366)
- Odczyt dokumentów Worda (367)
- Pobranie pełnego tekstu z pliku w formacie .docx (368)
- Nadawanie stylu akapitom i obiektom Run (369)
- Utworzenie dokumentu Worda z niestandardowymi stylami (370)
- Atrybuty obiektu Run (371)
- Zapis dokumentów Worda (372)
- Dodanie nagłówków (374)
- Dodanie znaku podziału wiersza i strony (375)
- Dodanie obrazu (376)
- Podsumowanie (376)
- Pytania kontrolne (377)
- Projekty praktyczne (378)
- PDF Paranoja (378)
- Własne zaproszenia utworzone w dokumencie Worda (378)
- Program łamiący hasło dokumentu PDF za pomocą ataku typu brute force (379)
14. Praca z plikami CSV i danymi JSON (381)
- Moduł csv (382)
- Obiekt Reader (383)
- Użycie pętli for do odczytu danych z obiektu Reader (384)
- Obiekt Writer (384)
- Argumenty w postaci słów kluczowych delimiter i lineterminator (386)
- Projekt - usunięcie nagłówka z pliku CSV (387)
- Etap 1. Iteracja przez poszczególne pliki CSV (387)
- Etap 2. Odczyt zawartości pliku CSV (388)
- Etap 3. Zapis pliku CSV bez pierwszego wiersza (389)
- Pomysły na podobne programy (390)
- JSON i API (390)
- Moduł json (392)
- Odczyt danych JSON za pomocą funkcji loads() (392)
- Zapis danych w formacie JSON za pomocą funkcji dumps() (392)
- Projekt - pobieranie bieżących danych prognozy pogody (393)
- Etap 1. Pobranie z wiersza poleceń informacji o lokalizacji (393)
- Etap 2. Pobranie danych w formacie JSON (394)
- Etap 3. Wczytanie danych w formacie JSON i wyświetlenie prognozy pogody (395)
- Pomysły na podobne programy (397)
- Podsumowanie (397)
- Pytania kontrolne (397)
- Projekty praktyczne (398)
- Konwerter danych w formacie Excel do formatu CSV (398)
15. Czas, harmonogram zadań i uruchamianie programów (401)
- Moduł time (402)
- Funkcja time.time() (402)
- Funkcja time.sleep() (403)
- Zaokrąglanie liczb (404)
- Projekt - superstoper (405)
- Etap 1. Przygotowanie programu do pomiaru czasu (405)
- Etap 2. Monitorowanie i wyświetlenie czasu okrążenia (406)
- Pomysły na podobne programy (407)
- Moduł datetime (408)
- Typ danych timedelta (410)
- Pauza aż do chwili osiągnięcia określonej daty (411)
- Konwersja obiektu datetime na ciąg tekstowy (412)
- Konwersja ciągu tekstowego na obiekt datetime (413)
- Przegląd funkcji czasu w Pythonie (414)
- Wielowątkowość (415)
- Przekazanie argumentów funkcji docelowej dla nowego wątku (417)
- Kwestie związane ze współbieżnością (418)
- Projekt - wielowątkowy program pobierający dane z witryny XKCD (418)
- Etap 1. Modyfikacja programu w celu użycia funkcji (419)
- Etap 2. Utworzenie i uruchomienie wątków (420)
- Etap 3. Zaczekanie na zakończenie działania wszystkich wątków (421)
- Uruchamianie innych programów z poziomu Pythona (421)
- Przekazanie funkcji Popen() argumentów wiersza poleceń (424)
- Harmonogram zadań, launchd i cron (424)
- Otwieranie witryn internetowych za pomocą Pythona (425)
- Wykonywanie innych skryptów Pythona (425)
- Otwieranie plików w ich aplikacjach domyślnych (426)
- Projekt - prosty program odliczający czas (427)
- Etap 1. Odliczanie (428)
- Etap 2. Odtworzenie pliku dźwiękowego (428)
- Pomysły na podobne programy (429)
- Podsumowanie (430)
- Pytania kontrolne (430)
- Projekty praktyczne (431)
- Ładniejszy stoper (431)
- Oparty na harmonogramie program pobierający komiksy (431)
16. Wysyłanie wiadomości e-mail i tekstowych (433)
- SMTP (434)
- Wysyłanie wiadomości e-mail (434)
- Nawiązanie połączenia z serwerem SMTP (435)
- Wysłanie wiadomości SMTP typu "Witaj" (436)
- Włączenie szyfrowania TLS (437)
- Logowanie w serwerze SMTP (437)
- Wysyłanie wiadomości e-mail (438)
- Zamknięcie połączenia z serwerem SMTP (438)
- IMAP (439)
- Pobieranie i usuwanie wiadomości e-mail za pomocą protokołu IMAP (439)
- Nawiązanie połączenia z serwerem IMAP (440)
- Logowanie w serwerze IMAP (441)
- Wyszukiwanie wiadomości e-mail (441)
- Pobieranie wiadomości e-mail i oznaczanie jej jako przeczytanej (445)
- Pobieranie adresów e-mail z niezmodyfikowanych wiadomości e-mail (447)
- Pobranie treści z niezmodyfikowanej wiadomości e-mail (448)
- Usuwanie wiadomości e-mail (449)
- Zamknięcie połączenia z serwerem IMAP (450)
- Projekt - wysyłanie wiadomości e-mail z przypomnieniami o składkach (451)
- Etap 1. Otworzenie pliku Excela (451)
- Etap 2. Wyszukanie wszystkich członków klubu, którzy zalegają ze składką (453)
- Etap 3. Wysłanie spersonalizowanego przypomnienia (453)
- Wysyłanie wiadomości tekstowych za pomocą Twilio (455)
- Założenie konta w serwisie Twilio (456)
- Wysyłanie wiadomości tekstowych (456)
- Projekt - moduł typu "wyślij mi wiadomość SMS" (459)
- Podsumowanie (460)
- Pytania kontrolne (461)
- Projekty praktyczne (461)
- Program losowo przypisujący uciążliwe zadania (461)
- Przypomnienie o parasolu (462)
- Automatyczna rezygnacja z subskrypcji (462)
- Kontrola komputera za pomocą wiadomości e-mail (462)
17. Praca z obrazami (465)
- Podstawy teorii obrazu cyfrowego (465)
- Kolory i wartości RGBA (466)
- Współrzędne i krotki pudełek (467)
- Praca z obrazami za pomocą modułu pillow (468)
- Praca z typem danych Image (470)
- Przycinanie obrazu (471)
- Kopiowanie i wklejanie obrazów w innych obrazach (472)
- Zmiana wielkości obrazu (474)
- Rotacja i lustrzane odbicia obrazu (476)
- Zmiana poszczególnych pikseli (478)
- Projekt - dodanie logo (480)
- Etap 1. Otworzenie pliku logo (481)
- Etap 2. Iteracja przez wszystkie pliki i otworzenie obrazów (481)
- Etap 3. Zmiana wielkości obrazu (482)
- Etap 4. Dodanie obrazu logo i zapisanie zmian (483)
- Pomysły na podobne programy (485)
- Rysowanie na obrazach (486)
- Rysowanie kształtów (486)
- Umieszczanie tekstu na obrazie (488)
- Podsumowanie (490)
- Pytania kontrolne (491)
- Projekty praktyczne (491)
- Rozbudowa i poprawa projektów omówionych w rozdziale (491)
- Odszukanie na dysku twardym katalogów zawierających zdjęcia (492)
- Własne wizytówki (493)
18. Kontrolowanie klawiatury i myszy za pomocą automatyzacji GUI (495)
- Instalacja modułu pyautogui (496)
- Pozostajemy na kursie (496)
- Zamknięcie wszystkiego przez wylogowanie się (497)
- Pauzy i funkcja bezpiecznej awarii (497)
- Kontrola poruszania myszą (498)
- Poruszanie kursorem myszy (499)
- Pobranie informacji o położeniu kursora myszy (500)
- Projekt - gdzie teraz jest kursor myszy? (500)
- Etap 1. Import modułu (501)
- Etap 2. Konfiguracja kodu zamykającego program oraz pętli działającej w nieskończoność (501)
- Etap 3. Pobranie i wyświetlenie bieżących współrzędnych kursora myszy (502)
- Kontrola działania myszy (503)
- Kliknięcie myszą (504)
- Przeciąganie myszą (504)
- Przewijanie myszą (506)
- Praca z ekranem (508)
- Wykonanie zrzutu ekranu (508)
- Analiza zrzutu ekranu (509)
- Projekt - rozbudowa programu mouseNow.py (509)
- Rozpoznawanie obrazu (510)
- Kontrola klawiatury (512)
- Przekazanie ciągu tekstowego z klawiatury (512)
- Nazwy klawiszy (513)
- Naciskanie i zwalnianie klawiszy (514)
- Kombinacja klawiszy (515)
- Przegląd funkcji modułu pyautogui (516)
- Projekt - automatyczne wypełnianie formularzy (517)
- Etap 1. Ustalenie kroków do wykonania (518)
- Etap 2. Przygotowanie współrzędnych (519)
- Etap 3. Rozpoczęcie wpisywania danych (521)
- Etap 4. Obsługa rozwijanych list i przycisków opcji (522)
- Etap 5. Wysłanie formularza i oczekiwanie (523)
- Podsumowanie (524)
- Pytania kontrolne (525)
- Projekty praktyczne (525)
- Symulowanie zajętości (525)
- Bot komunikatora internetowego (526)
- Samouczek dotyczący bota grającego w grę (526)
DODATKI (527)
A. Instalacja modułów firm trzecich (529)
- Narzędzie pip (529)
- Instalacja modułów firm trzecich (530)
B. Uruchamianie programów (533)
- Wiersz shebang (533)
- Uruchamianie programów Pythona w Windows (534)
- Uruchamianie programów Pythona w systemach macOS i Linux (535)
- Uruchamianie programów Pythona z wyłączonymi asercjami (536)
C. Odpowiedzi na pytania kontrolne (537)
- Rozdział 1. (538)
- Rozdział 2. (538)
- Rozdział 3. (540)
- Rozdział 4. (541)
- Rozdział 5. (542)
- Rozdział 6. (542)
- Rozdział 7. (543)
- Rozdział 8. (544)
- Rozdział 9. (545)
- Rozdział 10. (545)
- Rozdział 11. (546)
- Rozdział 12. (547)
- Rozdział 13. (548)
- Rozdział 14. (549)
- Rozdział 15. (549)
- Rozdział 16. (550)
- Rozdział 17. (550)
- Rozdział 18. (551)
Skorowidz (553)