Python obszary zastosowania
Python

Python obszary zastosowania

Python jest to nowoczesny język programowania. Zobacz, jakie są najpopularniejsze obszary, w których jest on wykorzystywany.

1. Automatyzacja zadań i integracja komponentów

Skrypty napisane w Pythonie można wykorzystać do automatyzacji zadań takich jak:

  • odczytywanie, zmiana i zapisywanie plików na dysku. Przykładowo można automatycznie zmienić nazwy wielu plików poprzez dodanie do nich daty, przenieść wybrane pliki pomiędzy katalogami, wyodrębnić pliki z katalogów zarchiwizowanych w .zip, zarchiwizować pliki z określonymi rozszerzeniami lub utworzone w określonym przedziale czasu, usunąć wybrane pliki.
  • przeglądanie stron internetowych, pobieranie danych ze stron i ich zapisywanie na dysku np. pobranie ze stron kursów walut, cen jednostek uczestnictwa
  • praca z arkuszami MS Excel np. porównywanie danych między wierszami w arkuszu lub między arkuszami, odczytywanie danych z Excela i wykorzystanie ich w programach Pythona.
  • obsługa plików w formacie .pdf – łączenie i dzielenie plików .pdf
  • wysyłanie wiadomości e-mail, pobieranie adresów e-mail z wiadomości
  • wypełnianie formularzy na stronach internetowych, logowanie się do poczty, logowanie się do konta bankowego

Python jest językiem „klejącym”. Jest on doskonałym spoiwem służącym do tworzenia skryptów, za pomocą których można kontrolować zachowanie innych systemów i komponentów oprogramowania.

Python jest zintegrowany z językami C i C++. Możliwość jego rozszerzania o języki z rodziny C, umożliwia wykorzystanie Pythona do testowania i uruchamiania bibliotek tych języków. Wykorzystanie Pythona umożliwia szybkie wprowadzanie poprawek w kodzie języka C lub C++, bez konieczności kompilacji całego programu.

Generatory kodu SWIG czy SIP umożliwiają automatyzację czynności koniecznych do wykonania podczas łączenia skompilowanych komponentów.

Cython został zaprojektowany w celu uzyskania w Pythonie wydajności zbliżonej do tej, którą oferuje język C. Posiada opcjonalną, dodatkową składnię podobną do składni języka C.

2. Analiza danych

NumPy – jedna z bibliotek Pythona – zawiera zaawansowane narzędzia np. obiekt tablicy i interfejsy do bibliotek matematycznych. Dzięki tej bibliotece, po zintegrowaniu Pythona z procedurami numerycznymi zakodowanymi C++, otrzymujemy zaawansowane i szybkie narzędzie do programowania numerycznego.

Dodatkowe narzędzia numeryczne dla Pythona obsługują między innymi animacje, wizualizacje trójwymiarowe i przetwarzanie równoległe. Rozszerzenie SciPy udostępnia biblioteki, które służą do programowania naukowego.

Biblioteka Matplotlib dostarcza narzędzi umożliwiających graficzną prezentację danych w formie np. wykresów.

Za pomocą biblioteki Pandas można pobrać dane np. z plików CSV lub bazy danych SQL i utworzyć obiekt Pythona z wierszami i kolumnami (ramka danych). Wygląda on podobnie do tabeli w oprogramowaniu statystycznym np. IBM SPSS.

3. Tworzenie stron internetowych (backend)

Python zawiera standardowe moduły internetowe, które pozwalają napisanym w nim programom na wykonywanie różnorodnych zadań sieciowych zarówno w trybie klienta, jak i serwera.

Skrypty mogą:

  • komunikować się za pośrednictwem gniazd
  • pobierać informacje z formularzy przesyłanych do skryptów CGI po stronie serwera
  • dokonywać transmisji danych za pomocą protokołu FTP
  • analizować i przetwarzać pliki XML
  • wysyłać, otrzymywać, tworzyć i przetwarzać wiadomości e-mail
  • pobierać strony internetowe wykorzystując ich adresy URL
  • komunikować się za pośrednictwem protokołów takich jak: XML-RPC, SOAP, Telnet.

Dodatkowo jest dostępnych wiele narzędzi, które usprawniają programowanie webowe w Pythonie np.:

  • system HTMLGen generuje pliki HTML z opisów Pythona opartych na klasach
  • pakiet mod_python uruchamia Pythona na serwerze Apache i obsługuje szablony po stronie serwera za pomocą Python Server Pages.

Istnieją też kompletne rozwiązania służące do programowania webowego dla Pythona, które umożliwiają szybkie tworzenie wysokiej jakości stron internetowych.

Do najpopularniejszych należą:

  • Django
  • Flask
  • TurboGears
  • web2py
  • Pylons
  • Zope
  • WebWare

4. Programowanie systemowe

Python posiada wbudowane interfejsy do usług systemów operacyjnych. Dzięki temu idealnie nadaje się do tworzenia przenośnych i łatwych w utrzymaniu narzędzi do administrowania systemami.

Programy napisane w tym języku mogą być wykorzystywane do uruchamiania innych programów, pobierania danych z Internetu, przeszukiwania plików i drzew katalogów, przenoszenia danych, wykonywania przetwarzania równoległego za pomocą procesów i wątków.

Język posiada bardzo rozbudowaną bibliotekę standardową. Zawiera ona m.in. wiązania POSIX oraz obsługę najczęściej wykorzystywanych elementów systemu operacyjnego:

  • zmiennych środowiskowych
  • plików
  • gniazd i potoków (sockets, pipes)
  • procesów i wielowątkowości
  • argumentów wiersza poleceń
  • standardowych interfejsów strumieni i programów uruchamianych z wiersza poleceń
  • rozszerzania nazw plików.

Większość interfejsów systemowych Pythona została zaprojektowana pod kątem przenośności. Przykładowo skrypty kopiujące i przenoszące pliki można uruchomić zarówno w systemie Windows jak i Linux.

5. Graficzne interfejsy użytkownika

Python jest szeroko wykorzystywany w programowaniu graficznych interfejsów użytkownika (GUI – Graphical User Interface). Zawiera on interfejs do Tk GUI API o nazwie tkinter, umożliwiający implementowanie przenośnych GUI.

Graficzne interfejsy użytkownika oparte na Pythonie i tkinter działają w systemach:

  • Windows
  • Unix oraz Linux
  • Mac OS

Interfejs tkinter można rozszerzyć o zaawansowane widgety za pomocą bezpłatnego pakietu rozszerzeń PMW.

Do najpopularniejszych pakietów dla języka Python, umożliwiających tworzenie interfejsów graficznych, należą:

  • wxPython – moduł oparty na bibliotece języka C++ zaimplementowany jako nakładka na bibliotekę wxWidgets
  • PythonCard – zbudowany na bazie modułów wxPython oraz tkinter dostarcza zaawansowanych narzędzi do tworzenia wieloplatformowych aplikacji komputerowych
  • GTK – moduł oparty na bibliotece Pythona PyGTK
  • .NET – moduł oparty na bibliotece Pythona IronPython
  • Swing – moduł oparty na bibliotece Pythona Jython
  • JPype – wersja Pythona oparta na Javie

6. Programowanie bazodanowe

Język Python można swobodnie wykorzystywać w pracy z bazami danych. Są dla niego stworzone interfejsy do najpopularniejszych relacyjnych baz danych:

  • MS SQL Sever
  • Sybase
  • Oracle
  • MySQL
  • PostgreSQL
  • SQLite.

Jest też dostępne przenośne API dla baz, które zapewnia dostęp do baz danych SQL ze skryptów napisanych w Pythonie.

Pickle, jeden z modułów Pythona, udostępnia prosty system trwałości obiektu (ang. object persistence), który umożliwia zapisywanie i przywracanie obiektów Pythona do i z plików. Silnik bazy danych SQLite jest standardową częścią języka Python.

ZODB (system open source) udostępnia pełny system zorientowanej obiektowo bazy danych dla skryptów Pythona.

Systemy SQLObject i SQLAlchemy odwzorowują tabele relacyjne na model klas Pythona.

7. Szybkie prototypowanie

Python jest doskonałym językiem do prototypowania. Komponenty napisane w Pythonie i C wyglądają tak samo dla użytkownika, który z nich korzysta. Możliwe jest więc początkowe prototypowanie systemów w Pythonie i ich późniejsze przenoszenie do języka kompilowanego, takiego jak C czy C++.

W przeciwieństwie do niektórych narzędzi do prototypowania, Python nie wymaga całkowitego przepisania komponentu po jego ustabilizowaniu. Te partie systemu, które nie potrzebują szybkiej wydajności, mogą pozostać zapisane w Pythonie ze względu na łatwość ich utrzymywania.

8. Python w grach, grafice i innych zastosowaniach

Oprócz bardzo rozbudowanej biblioteki standardowej, Python posiada wiele rozszerzeń i bibliotek, które umożliwiają wykorzystanie języka w następujących obszarach:

  • programowanie gier i multimediów przy wykorzystaniu narzędzi z biblioteki Pygame
  • komunikacja przez port szeregowy w systemach Windows i Linux za pomocą rozszerzenia PySerial
  • przetwarzanie grafiki umożliwione dzięki narzędziom PyOpenGL, Blender, Maya
  • tworzenie oprogramowania dla robotów za pomocą narzędzi z biblioteki PyRo
  • przetwarzanie dokumentów XML za pomocą pakietu biblioteki xml oraz modułu xmlrpc
  • programowanie sztucznej inteligencji (AI) za pomocą symulatorów sieci neuronowej i zaawansowanych powłok systemowych
  • analiza języka naturalnego za pomocą pakietu NLTK.

Tomasz Majewski

Programista C#, VBA
Udostępnij wpis: udostępnij Facebook udostępnij Linkedin udostępnij e-mail

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

    Podobne artykuły z kategorii: Python

    Może Cię zainteresować