Automatyzacja nudnych zadań z Pythonem. Nauka programowania. Wydanie II - ebook
Automatyzacja nudnych zadań z Pythonem. Nauka programowania. Wydanie II - ebook
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, 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ść...
Kategoria: | Programowanie |
Zabezpieczenie: |
Watermark
|
ISBN: | 978-83-283-7490-4 |
Rozmiar pliku: | 10 MB |