Będzie to pierwszy wpis poświęcony programowaniu. Ideą programowania jest to, że ma ono nam pomagać i ułatwiać życie, wykonywać część, a najlepiej wszystkie zadania za nas. Zacznę od krótkiego nakreślenia problemu, mianowicie w pracy w biurze projektowym, gdzie aktualnie pracuję, często zdarzają się czynności powtarzalne, które to nie wymagają dużo kreatywności, ale za to dokładności i precyzji, a przy okazji są bardzo czasochłonne. Tak było i w tym przypadku. Zgodnie z umową, jako nasz produkt mieliśmy dostarczać klientowi paczkę składającą się z 5 plików o odpowiedniej nazwie.

W skład tej paczki wchodzi elektro-plan(Eplan) w formie *.pdf, oraz pliki excela o odpowiedniej strukturze, zawierające odpowiednio: listę urządzeń, tabele z adresami dla sterownika PLC oraz opisy na kable. Wpis ten jednak nie dotyczy samej zawartości owych plików, ale sposobu ich generowania. W jednej komórce linii produkcyjnej występuje od kilku do kilkunastu urządzeń, które wymagają przygotowania odpowiedniej paczki. Klasycznie odbywa się to na zasadzie copy/paste i zmianie nazw plików na odpowiednie, gdzie nie łatwo o pomyłkę przy ręcznym wpisywaniu(następnie oczywiście zawartość plików jest dopasowana do odpowiedniego urządzenia czy też robota). I tu się pojawił mój pomysł, a może by tak spróbować to trochę zautomatyzować i zmniejszyć szanse na popełnienie błędu(często zdarzały się literówki, ewentualnie w jednej paczce nie wszystkie pliki nazywały się tak samo). Korzystając z okazji, że jest szansa wykorzystać swoje umiejętności, a przy okazji zyskać czas, np. na zabawę z córką, wziąłem się do roboty. Jako, że wcześniej głownie siedziałem w web-developerce, głownie JS i jego liczne frameworki, to stwierdziłem, że może warto nauczyć się czegoś nowego, wybór padł na pythona! Można by powiedzieć, że dwie pieczenie na jednym ogniu, po pierwsze robię coś praktycznego, a po drugie nauczę się składni nowego języka. Wstępny szkic algorytmu miałem już w głowie, teraz wystarczło przerobić go na sprytny skrypt. Okazało się, że python posiada biblioteki z dobrą dokumentacją do pracy na plikach w środowisku windows. Mój pomysł polegał na tym, żeby przygotować dwa foldery bazowe, w zależności czy dana paczka będzie dla robota czy dla stacji(inne urządzenie np. chwytak).

Następnym krokiem było stworzenie nowego folderu o odpowiedniej nazwie. Tu z pomocą przyszła biblioteka OS, dzięki której tworzę folder z odpowiednimi przywilejami:

W tym momencie zacząłem czuć jaką moc ma ten wąż. Kolejnym krokiem było odpowiednie „rozbicie” nazwy plików na segmenty, które można edytować.

Następnie odpowiednia podmiana i złożenie w odpowiednim formacie, plus użycie biblioteki time i datetime do automatycznego generowania ostatniego członu nazwy pliku. Kolejnym krokiem było obudowanie wszystkiego consolowym interfejsem, który przeprowadzi użytkownika przez cały proces. I ostatnim etapem było przekopiowanie plików z odpowiednią nazwą do folderu docelowego, tu z pomocą przyszła biblioteka shutil.

Poniżej cały w pełni spełniający powieżone mu zadanie skrypt. Wiem, wiem, nie jest on doskonały, nie jest nawet dobry(brak walidacji, obsługi błędów itd itp) ale jak na pierwszy kontakt z językiem jest ok, zwłaszcza, że dzięki niemu zyskuje mnóstwo czasu. Sorry za mieszanie językami ale część rzeczy jest dla mnie bardziej intuicyjna po niemiecku.

Link do Github

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *