
Automatyzacja nudnych zadań z Pythonem. Nauka



Automatyzacja nudnych zadań z Pythonem. Nauka - Najlepsze oferty
Automatyzacja nudnych zadań z Pythonem. Nauka - Opis
Komputer jest wszechstronnym narzędziem, które szybko i dokładnie wykona wiele pracochłonnych zadań. Wystarczy przekazać mu instrukcje w zrozumiałym dla niego języku. Takim jak Python, który jest łatwy do nauczenia się, pozwala pisać wyrazisty, zwięzły kod i stwarza imponujące możliwości dzięki niezliczonej liczbie rozszerzeń i bibliotek. Tymczasem wciąż wiele osób wykonuje żmudne i męczące zadania ręcznie: pracując z arkuszem kalkulacyjnym, plikami albo pocztą e-mail. Czas to zmienić - pracę, nad którą ślęczysz kilka dni, komputer wykona dokładniej w ciągu najwyżej kilku sekund!Ta książka jest drugim wydaniem nietypowego podręcznika programowania w Pythonie. Dzięki niej nie zostaniesz mistrzem świata w kodowaniu, za to nauczysz się tworzyć programy, które oszczędzą Ci mnóstwo czasu i wysiłku. Nawet jeśli nigdy nie programowałeś, błyskawicznie opanujesz podstawy i zapoznasz się z obszerną biblioteką Pythona przeznaczoną do automatyzacji takich zadań jak pobieranie danych z witryn internetowych, odczytywanie dokumentów oraz operacje wymagające klikania myszą i wpisywania tekstu. To wydanie zawiera nowy rozdział poświęcony weryfikacji danych wejściowych, a także samouczki dotyczące automatyzacji pracy z arkuszami Google i pocztą Gmail oraz podpowiedzi związane z automatycznym uaktualnianiem plików CVS.
Sprawdź, jak zautomatyzować:
wyszukiwanie ciągu znaków w pliku lub wielu plikach
tworzenie, uaktualnianie, przenoszenie i zmiany nazw plików oraz katalogów
wyszukiwanie treści w sieci WWW oraz ich pobieranie
podział, łączenie, (...) więcej nakładanie znaku wodnego i szyfrowanie dokumentów PDF
wysyłanie powiadomień za pomocą wiadomości e-mail oraz SMS
wypełnianie formularzy internetowych
Nudne i męczące? Zleć to Pythonowi!
Spis treści:
Podziękowania 19
Wprowadzenie 21
Do kogo jest skierowana ta książka? 22
Konwencje 23
Czym jest programowanie? 23
Co to jest Python? 24
Programiści nie muszą dobrze znać matematyki 24
Nigdy nie jest za późno na rozpoczęcie nauki programowania 25
Programowanie to aktywność kreatywna 26
O tej książce 26
Pobieranie i instalacja Pythona 29
Pobieranie i instalowanie edytora tekstu Mu 30
Uruchomienie edytora Mu 30
Uruchomienie środowiska IDLE 31
Powłoka interaktywna 31
Instalowanie modułów zewnętrznych 33
Jak otrzymać pomoc? 33
Sprytne zadawanie pytań dotyczących programowania 34
Podsumowanie 35
CZĘŚĆ I. PODSTAWY PROGRAMOWANIA W PYTHONIE
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 46
Twój pierwszy program 48
Analiza programu 49
Komentarze 49
Funkcja print() 50
Funkcja input() 50
Wyświetlanie imienia użytkownika 51
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 64
Elementy kontroli przepływu działania programu 65
Warunek 65
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
Krótki program - odgadnij liczbę 89
Krótki program - kamień, papier, nożyce 91
Podsumowanie 95
Pytania kontrolne 95
3. Funkcje 97
Polecenie def wraz z parametrami 99
Definiowanie, wywoływanie, przekazywanie, argument i parametr 99
Wartość zwrotna funkcji i polecenie return 100
Wartość None 102
Argumenty w postaci słów kluczowych i funkcja print() 102
Stos wywołań 104
Zasięgi lokalny i globalny 106
Zmienne lokalne nie mogą być używane w zasięgu globalnym 107
W zasięgu lokalnym nie można używać zmiennych zdefiniowanych w innych zasięgach lokalnych 108
Zmienna globalna może być używana w zasięgu lokalnym 109
Zmienna lokalna i globalna o takiej samej nazwie 109
Polecenie global 110
Obsługa wyjątków 113
Krótki program - zigzag 115
Podsumowanie 117
Pytania kontrolne 117
Projekt praktyczny 118
Problem Collatza 118
Weryfikacja danych wyjściowych 119
4. Listy 121
Typ danych List 121
Pobieranie poszczególnych wartości listy za pomocą indeksu 122
Indeks ujemny 124
Pobieranie podlisty za pomocą wycinka 124
Pobieranie długości listy za pomocą polecenia len() 125
Zmiana wartości na liście za pomocą indeksu 125
Konkatenacja i replikacja listy 126
Usunięcie wartości listy za pomocą polecenia del 126
Praca z listą 126
Użycie pętli for wraz z listą 128
Operatory in i not in 129
Sztuczka pozwalająca na wiele jednoczesnych operacji przypisania 130
Używanie funkcji enumerate() z listą 131
Używanie funkcji random.choice() i random.shuffle() z listą 131
Operatory przypisania i zmiany wartości 132
Metody 133
Odszukanie wartości na liście za pomocą metody index() 133
Dodanie wartości do listy za pomocą metod append() i insert() 134
Usuwanie wartości z listy za pomocą metody remove() 135
Sortowanie wartości listy za pomocą metody sort() 136
Odwrócenie kolejności wartości listy za pomocą metody reverse() 137
Przykładowy program - Magic 8 Ball utworzony za pomocą listy 137
Typy danych w postaci sekwencji 139
Modyfikowalne i niemodyfikowalne typy danych 139
Typ danych krotka 142
Konwersja typu za pomocą funkcji list() i tuple() 143
Odwołania 143
Identyfikator i funkcja id() 145
Przekazywanie odwołania 147
Funkcje copy() i deepcopy() modułu copy 147
Krótki program - gra w życie 148
Podsumowanie 153
Pytania kontrolne 154
Projekty praktyczne 154
Kod z przecinkami 155
Rzut monetą 155
Obraz na podstawie macierzy 156
5. Słowniki i strukturyzacja danych 157
Typ danych Dictionary 157
Słownik kontra lista 158
Metody keys(), values() i items() 160
Sprawdzenie, czy klucz lub wartość istnieją w słowniku 162
Metoda get() 162
Metoda setdefault() 163
Eleganckie wyświetlanie danych 164
Użycie struktur danych do modelowania rzeczywistych rozwiązań 165
Plansza do gry w kółko i krzyżyk 166
Zagnieżdżone słowniki i listy 171
Podsumowanie 173
Pytania kontrolne 173
Projekty praktyczne 173
Weryfikacja słownika modelującego grę w szachy 174
Inwentarz w grze fantasy 174
Funkcja konwertująca listę na słownik dla inwentarza w grze fantasy 175
6. Operacje na ciągach tekstowych 177
Praca z ciągami tekstowymi 177
Literały ciągu tekstowego 178
Indeksowanie i wycinanie ciągów tekstowych 181
Użycie operatorów in i not in podczas pracy z ciągami tekstowymi 182
Umieszczenie ciągu tekstowego w innym 182
Użyteczne metody ciągu tekstowego 183
Metody upper(), lower(), isupper() i islower() 183
Metody typu isX() 185
Metody startswith() i endswith() 187
Metody join() i split() 188
Podział tekstu za pomocą metody partition() 189
Wyrównywanie tekstu za pomocą metod rjust(), ljust() i center() 190
Usunięcie białych znaków za pomocą strip(), rstrip() i lstrip() 192
Wartości liczbowe znaków pobrane za pomocą funkcji ord() i chr() 193
Kopiowanie i wklejanie ciągów tekstowych za pomocą modułu pyperclip 194
Projekt - schowek dla wielu ciągów tekstowych 195
Etap 1. Projekt programu i struktur danych 195
Etap 2. Obsługa argumentów wiersza poleceń 196
Etap 3. Skopiowanie odpowiedniej wiadomości 196
Projekt - dodanie wypunktowania do kodu znaczników Wiki 197
Etap 1. Kopiowanie i wklejanie ze schowka 198
Etap 2. Rozdzielenie wierszy tekstu i dodanie gwiazdki 199
Etap 3. Złączenie zmodyfikowanych wierszy 200
Krótki program - świńska łacina 200
Podsumowanie 204
Pytania kontrolne 205
Projekt praktyczny 206
Wyświetlenie tabeli 206
Symulator Zombie Dice 206
CZĘŚĆ II. AUTOMATYZACJA ZADAŃ
7. Dopasowanie wzorca za pomocą wyrażeń regularnych 213
Wyszukiwanie wzorców w tekście bez użycia wyrażeń regularnych 214
Wyszukiwanie wzorców w tekście z użyciem wyrażeń regularnych 216
Tworzenie obiektów wyrażeń regularnych 217
Dopasowanie obiektów wyrażeń regularnych 218
Przegląd dopasowania za pomocą wyrażenia regularnego 218
Jeszcze więcej o dopasowaniach wzorca za pomocą wyrażeń regularnych 219
Grupowanie z użyciem nawiasów 219
Dopasowanie wielu grup za pomocą potoku 221
Opcjonalne dopasowanie za pomocą znaku zapytania 222
Dopasowanie zera wystąpień lub większej liczby wystąpień za pomocą gwiazdki 222
Dopasowanie jednego wystąpienia lub wielu wystąpień za pomocą plusa 223
Dopasowanie określonych powtórzeń za pomocą nawiasu klamrowego 224
Dopasowanie zachłanne i niezachłanne 225
Metoda findall() 225
Klasy znaków 226
Utworzenie własnej klasy znaków 227
Znaki ^ oraz $ 228
Znak wieloznaczny 229
Dopasowanie wszystkiego za pomocą kropki i gwiazdki 229
Dopasowanie znaku nowego wiersza za pomocą kropki 230
Przegląd znaków stosowanych w wyrażeniach regularnych 231
Dopasowanie bez uwzględnienia wielkości znaków 232
Zastępowanie ciągu tekstowego za pomocą metody sub() 232
Zarządzanie skomplikowanymi wyrażeniami regularnymi 233
Połączenie opcji re.IGNORECASE, re.DOTALL i re.VERBOSE 234
Projekt - wyodrębnianie numeru telefonu i adresu e-mail 235
Etap 1. Utworzenie wyrażenia regularnego dopasowującego numer telefonu 236
Etap 2. Utworzenie wyrażenia regularnego dopasowującego adres e-mail 237
Etap 3. Wyszukanie wszystkich dopasowań w tekście umieszczonym w schowku 237
Etap 4. Połączenie dopasowań w celu utworzenia pojedynczego ciągu tekstowego do umieszczenia w schowku 238
Uruchomienie programu 239
Pomysły na podobne programy 239
Podsumowanie 240
Pytania kontrolne 240
Projekty praktyczne 242
Wykrywanie daty 242
Wykrywanie silnego hasła 242
Oparta na wyrażeniu regularnym wersja metody strip() 243
8. Weryfikacja danych wejściowych 245
Moduł PyInputPlus 246
Argumenty w postaci słów kluczowych min, max, greaterThan i lessThan 248
Argument w postaci słowa kluczowego blank 249
Argumenty w postaci słów kluczowych limit, timeout i default 250
Argumenty w postaci słów kluczowych allowRegexes i blockRegexes 251
Przekazanie do inputCustom() niestandardowej funkcji weryfikacji danych wejściowych 252
Projekt - zajęcie kogoś godzinami 253
Projekt - quiz z tabliczki mnożenia 255
Podsumowanie 257
Pytania kontrolne 258
Projekty praktyczne 258
Program przygotowujący kanapki 259
Własna wersja quizu z zakresu tabliczki mnożenia 259
9. Odczyt i zapis plików 261
Pliki i ścieżki dostępu do plików 261
Lewy ukośnik w systemie Windows, prawy ukośnik w systemach macOS i Linux 262
Używanie operatora / do złączania ścieżek dostępu 264
Bieżący katalog roboczy 266
Katalog domowy 267
Względne kontra bezwzględne ścieżki dostępu 267
Tworzenie nowych katalogów za pomocą funkcji os.makedirs() 267
Obsługa bezwzględnych i względnych ścieżek dostępu 268
Pobieranie fragmentów ścieżki dostępu do pliku 270
Ustalenie wielkości pliku i zawartości katalogu 273
Modyfikowanie listy plików za pomocą wzorców glob 274
Sprawdzenie poprawności ścieżki dostępu 276
Proces odczytu i zapisu pliku 277
Otwieranie pliku za pomocą funkcji open() 278
Odczyt zawartości pliku 279
Zapis pliku 280
Zapis zmiennych za pomocą modułu shelve 281
Zapis zmiennych za pomocą funkcji pprint.pformat() 283
Projekt - generowanie losowych plików quizu 284
Etap 1. Umieszczenie danych quizu w słowniku 285
Etap 2. Utworzenie pliku quizu i losowe umieszczenie odpowiedzi na pytania 286
Etap 3. Utworzenie odpowiedzi 287
Etap 4. Zapis treści w plikach quizu i odpowiedzi 288
Projekt - schowek przechowujący wiele elementów 289
Etap 1. Komentarze i konfiguracja pliku binarnego 290
Etap 2. Zapis zawartości schowka wraz ze słowem kluczowym 291
Etap 3. Wyświetlenie słów kluczowych i wczytanie treści powiązanej ze słowem kluczowym 291
Podsumowanie 292
Pytania kontrolne 293
Projekty praktyczne 293
Rozbudowa programu schowka przechowującego wiele elementów 294
Program Mad Libs 294
Wyszukiwanie wyrażenia regularnego 294
10. Organizacja plików 295
Moduł shutil 296
Kopiowanie plików i katalogów 296
Przenoszenie oraz zmiana nazwy plików i katalogów 297
Trwałe usunięcie plików i katalogów 298
Bezpieczne usuwanie danych za pomocą modułu send2trash 299
Przejście przez drzewo katalogu 300
Kompresja plików za pomocą modułu zipfile 302
Odczyt pliku w formacie ZIP 302
Wyodrębnianie plików z archiwum ZIP 303
Utworzenie i dodawanie elementów do archiwum ZIP 304
Projekt - zmiana plików z datami w stylu amerykańskim na daty w stylu europejskim 304
Etap 1. Utworzenie wyrażenia regularnego dla daty w stylu amerykańskim 305
Etap 2. Identyfikacja w nazwie pliku fragmentów określających datę 307
Etap 3. Utworzenie nowej nazwy pliku i zmiana nazw plików 308
Pomysły na podobne programy 309
Projekt - utworzenie archiwum ZIP będącego kopią katalogu 309
Etap 1. Ustalenie nazwy pliku archiwum ZIP 309
Etap 2. Utworzenie nowego archiwum ZIP 310
Etap 3. Przejście przez drzewo katalogu i dodanie plików do archiwum ZIP 311
Pomysły na podobne programy 312
Podsumowanie 312
Pytania kontrolne 313
Projekty praktyczne 313
Kopiowanie selektywne 314
Usunięcie niepotrzebnych plików 314
Wypełnienie przerw 314
11. Usuwanie błędów 315
Zgłaszanie wyjątku 316
Pobranie stosu wywołań w postaci ciągu tekstowego 318
Asercje 319
Użycie asercji w projekcie symulacji ulicznej sygnalizacji świetlnej 321
Rejestracja danych 322
Użycie modułu logging 323
Nie przeprowadzaj procesu usuwania błędów za pomocą funkcji print() 325
Poziomy rejestrowania informacji 325
Wyłączenie rejestrowania informacji 326
Rejestrowanie informacji w pliku 327
Debugger edytora Mu 327
Kontynuuj 328
Krok do wewnątrz 329
Przekrocz 329
Krok na zewnątrz 329
Zatrzymaj 329
Debugowanie programu sumującego liczby 329
Punkty kontrolne 331
Podsumowanie 333
Pytania kontrolne 333
Projekt praktyczny 334
Debugowanie programu symulującego rzut monetą 334
12. Pobieranie danych z internetu 337
Projekt - mapIt.py z użyciem modułu webbrowser 338
Etap 1. Ustalenie adresu URL 339
Etap 2. Obsługa argumentów wiersza poleceń 339
Etap 3. Obsługa zawartości schowka i uruchomienie przeglądarki WWW 340
Pomysły na podobne programy 341
Pobieranie plików z internetu za pomocą modułu requests 341
Pobieranie strony internetowej za pomocą funkcji requests.get() 342
Sprawdzenie pod kątem błędów 343
Zapis pobranych plików na dysku twardym 344
HTML 345
Zasoby pomagające w poznawaniu języka HTML 346
Krótkie wprowadzenie 346
Wyświetlenie kodu źródłowego HTML strony internetowej 347
Wyświetlenie oferowanych przez przeglądarkę WWW narzędzi programistycznych 348
Użycie narzędzi programistycznych do wyszukiwania elementów HTML 350
Przetwarzanie kodu HTML za pomocą modułu bs4 352
Utworzenie obiektu BeautifulSoup na podstawie kodu HTML 352
Wyszukiwanie elementu za pomocą metody select() 353
Pobieranie danych z atrybutów elementu 355
Projekt - wyświetlenie wyników wyszukiwania 356
Etap 1. Pobranie argumentów wiersza poleceń i żądanie strony wyszukiwarki 357
Etap 2. Wyszukanie wszystkich wyników 357
Etap 3. Otworzenie kart przeglądarki WWW dla poszczególnych wyników 358
Pomysły na podobne programy 359
Projekt - pobranie wszystkich komiksów z witryny XKCD 360
Etap 1. Projekt programu 361
Etap 2. Pobranie strony internetowej 362
Etap 3. Odszukanie i pobranie obrazu komiksu 363
Etap 4. Zapis obrazu i odszukanie poprzedniego komiksu 363
Pomysły na podobne programy 365
Kontrolowanie przeglądarki WWW za pomocą modułu selenium 365
Uruchomienie przeglądarki WWW kontrolowanej przez moduł selenium 366
Wyszukanie elementów na stronie 368
Kliknięcie na stronie 370
Wypełnianie i wysyłanie formularzy sieciowych 370
Symulacja naciśnięcia klawiszy specjalnych 371
Klikanie przycisków przeglądarki WWW 372
Więcej informacji na temat modułu selenium 372
Podsumowanie 372
Pytania kontrolne 373
Projekty praktyczne 374
Klient poczty działający w wierszu poleceń 374
Pobieranie obrazów z witryny internetowej 374
2048 374
Weryfikacja łącza 375
13. Praca z arkuszami kalkulacyjnymi programu Excel 377
Dokumenty Excela 378
Instalacja modułu openpyxl 378
Odczyt dokumentów Excela 379
Otwieranie istniejącego dokumentu Excela za pomocą openpyxl 379
Pobranie arkuszy ze skoroszytu 380
Pobieranie komórek z arkuszy 380
Konwersja między literami kolumn i liczbami 382
Pobieranie wierszy i kolumn z arkuszy 383
Skoroszyty, arkusze i komórki 385
Projekt - odczyt danych z arkusza kalkulacyjnego 385
Etap 1. Odczyt danych z arkusza kalkulacyjnego 386
Etap 2. Wypełnienie struktury danych 387
Etap 3. Zapis wyników do pliku 389
Pomysły na podobne programy 390
Zapis dokumentów Excela 390
Tworzenie i zapisywanie dokumentów Excela 391
Tworzenie i usuwanie arkuszy kalkulacyjnych 391
Zapis wartości w komórkach 392
Projekt - uaktualnienie skoroszytu 393
Etap 1. Przygotowanie struktury danych wraz z uaktualnionymi informacjami 394
Etap 2. Sprawdzenie wszystkich wierszy i skorygowanie nieprawidłowych cen 395
Pomysły na podobne programy 396
Ustawienie stylu czcionki komórek 396
Obiekt Font 397
Formuły 398
Dostosowanie wierszy i kolumn do własnych potrzeb 400
Ustalenie wysokości wiersza i szerokości kolumny 400
Łączenie i dzielenie komórki 401
Zablokowane okienka 402
Wykresy 403
Podsumowanie 404
Pytania kontrolne 405
Projekty praktyczne 406
Program tworzący tabliczkę mnożenia 406
Program wstawiający pusty wiersz 407
Program zmieniający położenie komórek arkusza kalkulacyjnego 407
Przeniesienie zawartości pliku tekstowego do arkusza kalkulacyjnego 408
Przeniesienie zawartości arkusza kalkulacyjnego do plików tekstowych 409
14. Praca z Arkuszami Google 411
Instalacja i konfiguracja EZSheets 411
Pobranie danych uwierzytelniających i plików tokenów 412
Unieważnienie pliku danych uwierzytelniających 414
Obiekt skoroszytu 415
Tworzenie, przekazywanie i wyświetlanie skoroszytów 415
Atrybuty skoroszytu 417
Pobieranie i przekazywanie skoroszytów 418
Usuwanie skoroszytu 419
Obiekt arkusza 419
Odczytywanie i zapisywanie danych 420
Tworzenie i usuwanie arkuszy 425
Kopiowanie arkusza 426
Praca z ograniczeniami nakładanymi przez Arkusze Google 427
Podsumowanie 428
Pytania kontrolne 428
Projekty praktyczne 429
Pobieranie danych Formularzy Google 429
Konwertowanie skoroszytów na inne formaty 429
Wyszukiwanie błędów w skoroszytach 429
15. Praca z dokumentami PDF i Worda 431
Dokumenty w formacie PDF 431
Wyodrębnianie tekstu z dokumentu PDF 432
Deszyfrowanie dokumentu PDF 434
Tworzenie dokumentów PDF 435
Projekt - połączenie wybranych stron z wielu dokumentów PDF 440
Etap 1. Wyszukanie wszystkich plików w formacie PDF 441
Etap 2. Otworzenie poszczególnych dokumentów PDF 442
Etap 3. Dodanie poszczególnych stron 442
Etap 4. Zapis dokumentu wynikowego 443
Pomysły na podobne programy 444
Dokumenty procesora tekstu Microsoft Word 444
Odczyt dokumentów Worda 445
Pobranie pełnego tekstu z pliku w formacie .docx 446
Nadawanie stylu akapitom i obiektom Run 447
Utworzenie dokumentu Worda z niestandardowymi stylami 449
Atrybuty obiektu Run 449
Zapis dokumentów Worda 451
Dodanie nagłówków 453
Dodanie znaku podziału wiersza i strony 454
Dodanie obrazu 454
Tworzenie dokumentu PDF na podstawie dokumentu Worda 455
Podsumowanie 455
Pytania kontrolne 456
Projekty praktyczne 457
PDF Paranoja 457
Własne zaproszenia utworzone w dokumencie Worda 457
Program łamiący hasło dokumentu PDF za pomocą ataku typu brute force 458
16. Praca z plikami CSV i danymi JSON 461
Moduł csv 462
Obiekt reader 463
Użycie pętli for do odczytu danych z obiektu reader 464
Obiekt writer 464
Argumenty w postaci słów kluczowych delimiter i lineterminator 466
Obiekty CSV DictReader i DictWriter 467
Projekt - usunięcie nagłówka z pliku CSV 469
Etap 1. Iteracja przez poszczególne pliki CSV 470
Etap 2. Odczyt zawartości pliku CSV 470
Etap 3. Zapis pliku CSV bez pierwszego wiersza 471
Pomysły na podobne programy 472
JSON i API 473
Moduł json 474
Odczyt danych JSON za pomocą funkcji loads() 474
Zapis danych w formacie JSON za pomocą funkcji dumps() 475
Projekt - pobieranie bieżących danych prognozy pogody 475
Etap 1. Pobranie z wiersza poleceń informacji o lokalizacji 476
Etap 2. Pobranie danych w formacie JSON 477
Etap 3. Wczytanie danych w formacie JSON i wyświetlenie prognozy pogody 478
Pomysły na podobne programy 480
Podsumowanie 480
Pytania kontrolne 481
Projekty praktyczne 481
Konwerter danych w formacie Excel do formatu CSV 481
17. Czas, harmonogram zadań i uruchamianie programów 483
Moduł time 483
Funkcja time.time() 484
Funkcja time.sleep() 485
Zaokrąglanie liczb 486
Projekt - superstoper 486
Etap 1. Przygotowanie programu do pomiaru czasu 487
Etap 2. Monitorowanie i wyświetlenie czasu okrążenia 488
Pomysły na podobne programy 489
Moduł datetime 490
Typ danych timedelta 491
Pauza aż do chwili osiągnięcia określonej daty 493
Konwersja obiektu datetime na ciąg tekstowy 493
Konwersja ciągu tekstowego na obiekt datetime 495
Przegląd funkcji czasu w Pythonie 495
Wielowątkowość 496
Przekazanie argumentów funkcji docelowej dla nowego wątku 498
Kwestie związane ze współbieżnością 499
Projekt - wielowątkowy program pobierający dane z witryny XKCD 500
Etap 1. Modyfikacja programu w celu użycia funkcji 500
Etap 2. Utworzenie i uruchomienie wątków 502
Etap 3. Zaczekanie na zakończenie działania wszystkich wątków 502
Uruchamianie innych programów z poziomu Pythona 503
Przekazanie funkcji Popen() argumentów wiersza poleceń 506
Harmonogram zadań, launchd i cron 506
Otwieranie witryn internetowych za pomocą Pythona 507
Wykonywanie innych skryptów Pythona 507
Otwieranie plików w ich aplikacjach domyślnych 508
Projekt - prosty program odliczający czas 509
Etap 1. Odliczanie 509
Etap 2. Odtworzenie pliku dźwiękowego 510
Pomysły na podobne programy 510
Podsumowanie 511
Pytania kontrolne 512
Projekty praktyczne 512
Ładniejszy stoper 512
Oparty na harmonogramie program pobierający komiksy 513
18. Wysyłanie wiadomości e-mail i tekstowych 515
Wysyłanie i odbieranie poczty za pomocą API Gmail 516
Włączenie API Gmail 516
Wysyłanie wiadomości za pomocą konta Gmail 517
Odczytywanie wiadomości za pomocą konta Gmail 518
Wyszukiwanie wiadomości w koncie poczty Gmail 520
Pobieranie załączników z konta Gmail 521
SMTP 521
Wysyłanie wiadomości e-mail 522
Nawiązanie połączenia z serwerem SMTP 522
Wysłanie wiadomości SMTP typu "Witaj" 524
Włączenie szyfrowania TLS 524
Logowanie w serwerze SMTP 525
Wysyłanie wiadomości e-mail 525
Zamknięcie połączenia z serwerem SMTP 526
IMAP 526
Pobieranie i usuwanie wiadomości e-mail za pomocą protokołu IMAP 527
Nawiązanie połączenia z serwerem IMAP 527
Logowanie w serwerze IMAP 528
Wyszukiwanie wiadomości e-mail 529
Pobieranie wiadomości e-mail i oznaczanie jej jako przeczytanej 533
Pobieranie adresów e-mail z niezmodyfikowanych wiadomości e-mail 534
Pobranie treści z niezmodyfikowanej wiadomości e-mail 535
Usuwanie wiadomości e-mail 536
Zamknięcie połączenia z serwerem IMAP 536
Projekt - wysyłanie wiadomości e-mail z przypomnieniami o składkach 537
Etap 1. Otworzenie pliku Excela 538
Etap 2. Wyszukanie wszystkich członków klubu, którzy zalegają ze składką 539
Etap 3. Wysłanie spersonalizowanego przypomnienia 540
Wysyłanie wiadomości tekstowych za pomocą bramek SMS 541
Wysyłanie wiadomości tekstowych za pomocą Twilio 543
Założenie konta w serwisie Twilio 544
Wysyłanie wiadomości tekstowych 544
Projekt - moduł typu "wyślij mi wiadomość SMS" 546
Podsumowanie 548
Pytania kontrolne 548
Projekty praktyczne 549
Program losowo przypisujący uciążliwe zadania 549
Przypomnienie o parasolu 550
Automatyczna rezygnacja z subskrypcji 550
Kontrola komputera za pomocą wiadomości e-mail 550
19. Praca z obrazami 553
Podstawy teorii obrazu cyfrowego 553
Kolory i wartości RGBA 554
Współrzędne i krotki pudełek 555
Praca z obrazami za pomocą modułu pillow 556
Praca z typem danych Image 558
Przycinanie obrazu 559
Kopiowanie i wklejanie obrazów w innych obrazach 560
Zmiana wielkości obrazu 563
Rotacja i lustrzane odbicia obrazu 564
Zmiana poszczególnych pikseli 566
Projekt - dodanie logo 568
Etap 1. Otworzenie pliku logo 569
Etap 2. Iteracja przez wszystkie pliki i otworzenie obrazów 570
Etap 3. Zmiana wielkości obrazu 571
Etap 4. Dodanie obrazu logo i zapisanie zmian 572
Pomysły na podobne programy 573
Rysowanie na obrazach 574
Rysowanie kształtów 574
Umieszczanie tekstu na obrazie 576
Podsumowanie 578
Pytania kontrolne 579
Projekty praktyczne 579
Rozbudowa i poprawa projektów omówionych w rozdziale 580
Odszukanie na dysku twardym katalogów zawierających zdjęcia 580
Własne wizytówki 581
20. Kontrolowanie klawiatury i myszy za pomocą automatyzacji GUI 583
Instalacja modułu pyautogui 584
Konfiguracja ustawień dostępności w macOS 585
Pozostajemy na kursie 585
Pauzy i funkcja bezpiecznej awarii 585
Zamknięcie wszystkiego przez wylogowanie się 586
Kontrola poruszania myszą 586
Poruszanie kursorem myszy 587
Pobranie informacji o położeniu kursora myszy 588
Kontrola działania myszy 589
Kliknięcie myszą 589
Przeciąganie myszą 590
Przewijanie myszą 592
Planowanie ruchu myszą 592
Praca z ekranem 594
Wykonanie zrzutu ekranu 594
Analiza zrzutu ekranu 594
Rozpoznawanie obrazu 596
Pobieranie informacji o oknie 598
Pobranie aktywnego okna 598
Inne sposoby na pobieranie okna 599
Przeprowadzanie operacji na oknach 600
Kontrola klawiatury 602
Przekazanie ciągu tekstowego z klawiatury 602
Nazwy klawiszy 603
Naciskanie i zwalnianie klawiszy 604
Kombinacja klawiszy 604
Konfiguracja skryptów automatyzacji GUI 605
Przegląd funkcji modułu pyautogui 607
Projekt - automatyczne wypełnianie formularzy 608
Etap 1. Ustalenie kroków do wykonania 610
Etap 2. Przygotowanie współrzędnych 611
Etap 3. Rozpoczęcie wpisywania danych 612
Etap 4. Obsługa rozwijanych list i przycisków opcji 613
Etap 5. Wysłanie formularza i oczekiwanie 614
Wyświetlanie okien dialogowych 615
Podsumowanie 616
Pytania kontrolne 617
Projekty praktyczne 618
Symulowanie zajętości 618
Używanie schowka do odczytywania pola tekstowego 618
Bot komunikatora internetowego 619
Samouczek dotyczący bota grającego w grę 620
A. Instalacja modułów firm trzecich 621
Narzędzie pip 621
Instalacja modułów firm trzecich 622
Instalowanie modułów dla edytora Mu 624
B. Uruchamianie programów 627
Uruchamianie programów z poziomu powłoki 627
Uruchamianie programów Pythona w Windows 629
Uruchamianie programów Pythona w systemie macOS 630
Uruchamianie programów Pythona w systemie Ubuntu Linux 631
Uruchamianie programów Pythona z wyłączonymi asercjami 632
C. Odpowiedzi na pytania kontrolne 633
Rozdział 1. 634
Rozdział 2. 634
Rozdział 3. 636
Rozdział 4. 637
Rozdział 5. 638
Rozdział 6. 638
Rozdział 7. 639
Rozdział 8. 640
Rozdział 9. 640
Rozdział 10. 641
Rozdział 11. 641
Rozdział 12. 642
Rozdział 13. 643
Rozdział 14. 644
Rozdział 15. 645
Rozdział 16. 645
Rozdział 17. 646
Rozdział 18. 646
Rozdział 19. 647
Rozdział 20. 648
O autorze: 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: https://coffeeghost.net. mniej
Automatyzacja nudnych zadań z Pythonem. Nauka - Opinie i recenzje
Na liście znajdują się opinie, które zostały zweryfikowane (potwierdzone zakupem) i oznaczone są one zielonym znakiem Zaufanych Opinii. Opinie niezweryfikowane nie posiadają wskazanego oznaczenia.