logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Automatyzacja procesu: zapis *.RAR z e-mail na FTP po edycji CSV

LANIA26 14 Lut 2024 15:11 591 28
REKLAMA
  • #1 20961338
    LANIA26
    Poziom 12  
    Posty: 106
    Ocena: 12
    Witajcie koledzy.

    Problem:

    Plik *.RAR ląduje na poczcie e-mail.
    Muszę go zapisać na dysku, rozpakować (plik *.CSV) - otworzyć plik, przerobić dane (formatowanie, usuwanie niepotrzebnych kolumn) zapisać jako *.CSV - o odpowiednim kodowaniu i zapisać na dysku FTP.

    Chciałbym wykluczyć czynnik ludzki i zautomatyzować cały ten proces, który musiał by działać jeden raz na dobę.

    Jak mogę to zrobić.

    Z góry dziękuje za wszelakie wskazówki

    ADMIN - jeżeli nie ta grupa prosze o przeniesienie mojego zapytania. :)

    edit __ Może za dużo motam ale juz znowu się mieniło. Rozpakować i zapisać na lokalizacji sieciowej (dysk serwera)
  • REKLAMA
  • Pomocny post
    #2 20961372
    JacekCz
    Poziom 42  
    Posty: 8670
    Pomógł: 760
    Ocena: 1462
    LANIA26 napisał:
    Jak mogę to zrobić.


    Np power Shell'em
  • #3 20961434
    LANIA26
    Poziom 12  
    Posty: 106
    Ocena: 12
    dziękuję za podpowiedź

    tylko zapomniałem dodać ze nie znam języków programowania ITP. ;(
  • Pomocny post
    #5 20962398
    kinggustav
    Poziom 27  
    Posty: 797
    Pomógł: 93
    Ocena: 93
    Trochę sobie nie wyobrażam programowania bez znajomości języka programowania, nawet przy wsparciu GPT. Owszem napisze kod, jeżeli tylko będziesz wiedział o co zapytać (to wcale nie takie oczywiste, trzeba co najmniej umieć podzielić zadanie na mniejsze kawałki), a potem poprawisz błędy. :)
    Moim zdaniem jako realny pozostaje tylko p. 2. :)
  • Pomocny post
    #6 20962470
    _jta_
    Specjalista elektronik
    Posty: 48911
    Pomógł: 3201
    Ocena: 4212
    Potrzebny byłby program pobierający pocztę, program wyodrębniający z niej pliki (dla serwera IMAP jest dostępna bezpośrednia operacja pobierania plików zawartych w mailu), i programy do dalszej obróbki - np. pobierać pocztę mógłby program "fetchmail", do wyodrębniania plików był "metamail", ale już go nie ma, trzeba by poszukać, czym go zastąpiono (może ripmime?), albo używać IMAP-a do pobierania załączonych plików. Raczej sugerowałbym używanie Linux-a, bo tam są programy do poszczególnych etapów przetwarzania, a w Windows zwykle są wielkie machiny, które robią wiele rzeczy, ale nie to, co akurat jest potrzebne (i wymagają klikania myszą) - są konstruowane w myśl ponoć zasady Forda „Każdy klient może kupić samochód pomalowany na dowolny kolor, pod warunkiem, że będzie to czarny” (ale podobno Ford nigdy tego zdania nie napisał... https://www.ucando.pl/blog/bohater-miesiaca-henry-ford/ ).

    A inna możliwość: są programy do imitowania działań myszy - mogą klikać gdzie i kiedy potrzeba, by z tego wyszła odpowiednia akcja.
  • Pomocny post
    #7 20962478
    rufek90
    Poziom 25  
    Posty: 463
    Pomógł: 106
    Ocena: 58
    Są platformy tzw. no-code czy low-code, które pomagają automatyzować takie rzeczy jak odbiór z maila, rozpakowanie czy wysyłka na FTP. Taką platformą jest np. n8n czy ifttt. Możliwe, że ogarną one i edycję csv po napisaniu jakiegoś kodu. Ja pewnie wolałbym napisać samemu skrypt który to robi niż używać takiego kombajnu, ale przy braku umiejętności programowania to warto sprawdzić :)
  • REKLAMA
  • Pomocny post
    #8 20962603
    _jta_
    Specjalista elektronik
    Posty: 48911
    Pomógł: 3201
    Ocena: 4212
    Jeśli CSV nie używa w danych znaków, które są separatorami pól, to pod Linux-em "cut" może wybierać wskazane kolumny; nie może zmienić ich kolejności, i jak np. napisze się 1,5,3, to wyjdzie 1,3,5 - parametr może określić tylko, które kolumny są kopiowane, a nie, jaka ma być kolejność.

    Jeśli na używanym komputerze są Windows, to jest np. WSL - Windows Subsystem for Linux, który pozwala używać Linux-a pod Windows.
  • #9 20962609
    LANIA26
    Poziom 12  
    Posty: 106
    Ocena: 12
    dziękuję bardzo za wszystkie podpowiedzi

    moze skorzystam z platform podanych wyżej, słyszałem jeszcze o https://www.make.com/en

    dam na pewno znać jak problem rozwiązałem
  • REKLAMA
  • Pomocny post
    #11 20962757
    gps79
    Poziom 37  
    Posty: 2190
    Pomógł: 495
    Ocena: 792
    Nie mam 100% pewności, czy będzie możliwość realizacji tego zadania, ale warto rozpatrzyć technologie:
    1. AutoIt
    2. VisualBasic Script
    Niestety dla autora i stety dla tego działu obie wiążą się z programowaniem.
    Dodam, że całe zadanie nie jest na poziomie "początkujący" ze względu na połączenie różnych technologii i bez ich dogłębnego zrozumienia realizacja może nie być możliwa.
  • REKLAMA
  • Pomocny post
    #12 20962782
    rufek90
    Poziom 25  
    Posty: 463
    Pomógł: 106
    Ocena: 58
    _jta_ napisał:
    Pytanie, co z hasłem dostępu do poczty - jeśli podasz je na tej stronie, to jej właściciel może uzyskać dostęp do twojej poczty.

    Akurat n8n można hostować samemu, więc nie ma obaw, ale fakt, w pozostałych platformach dajesz ten dostęp. Tak samo jakbyś wrzucił swój skrypt na jakiegoś vps czy hosting - dostawca pewnie ma wjazd na maszynę i może to wykraść. Do samej poczty również usługodawca ma dostęp, więc chyba nie warto popadać w paranoję :)
  • #13 20962810
    LANIA26
    Poziom 12  
    Posty: 106
    Ocena: 12
    >>20962673

    O! Tego nie wiedziałem.
  • Pomocny post
    #14 20963039
    clubs
    Poziom 38  
    Posty: 2219
    Pomógł: 629
    Ocena: 406
    LANIA26 napisał:
    Plik *.RAR ląduje na poczcie e-mail.
    Muszę go zapisać na dysku, rozpakować (plik *.CSV) - otworzyć plik, przerobić dane (formatowanie, usuwanie niepotrzebnych kolumn) zapisać jako *.CSV - o odpowiednim kodowaniu i zapisać na dysku FTP.

    Jeśli korzystasz z poczty przez outlooka to wszystkie te rzeczy, można nawet w excel vba zrobić.
  • #15 20968767
    LANIA26
    Poziom 12  
    Posty: 106
    Ocena: 12
    Witajcie.

    otóż sytuacja chyba się troszkę uprościła. (w końcu ktoś poszedł po rozum do głowy :)

    Temat stanął na tym ze automat musiałby TYLKO i wyłącznie rozpakować RAR a plik zapisać na FTP.

    z góry dzięki. pozdr
  • Pomocny post
    #16 20968795
    gps79
    Poziom 37  
    Posty: 2190
    Pomógł: 495
    Ocena: 792
    O jaki FTP chodzi? FTP, to protokół sieciowy i nie można na niego nic zapisać.
  • Pomocny post
    #17 20968808
    rufek90
    Poziom 25  
    Posty: 463
    Pomógł: 106
    Ocena: 58
    >>20968767
    polecałem wcześniej n8n, który ogarnia takie rzeczy, ale czytam teraz że obsługuje zip i gzip więc możliwe, że nie da rady z rarem. Mają darmową wersję próbną oraz apkę desktopową na której można sobie testować, więc sugerowałbym pójść w to. Ostatecznie można to hostować u siebie, ale musiałbyś ogarniać trochę dockera i zarządzanie serwerem więc pewnie odpada. Jeśli obsłuży rara albo możesz dostawać zipa to obejdzie się bez programowania
  • Pomocny post
    #18 20968811
    hipekk
    Poziom 19  
    Posty: 582
    Pomógł: 16
    Ocena: 43
    >>20968795
    Myślę, że każdy (a jak widać prawie każdy) domyśli się, że chodzi o zapis na serwerze FTP.


    >>20968767
    Jak znudzi Ci się samodzielna walka to odezwij się na PW - pomogę ogarnąć (przy takim uproszczonym zadaniu pomogę za free ;) )
  • #20 20970491
    LANIA26
    Poziom 12  
    Posty: 106
    Ocena: 12
    u nie wiem jaka wersja RAR

    Windows.

    ale nie wiem czy tez może być linux wiem ze w firmie sa kompy z linuxem.

    Może za dużo motam ale juz znowu się mieniło. Rozpakować i zapisać na lokalizacji sieciowej (dysk serwera)

    Dodano po 9 [minuty]:

    >>20963039

    Kurde nie mam otlooka :(

    Może coś innego?
  • #22 20970540
    gps79
    Poziom 37  
    Posty: 2190
    Pomógł: 495
    Ocena: 792
    Zrób sobie najpierw automat do modyfikacji pliku csv znajdującego się na dysku uruchamiany z poziomu systemu operacyjnego (kliknieciem lub z konsoli cmd). Będziesz krok do przodu, a jak się dowiesz skąd i dokąd, to dorobisz resztę.
  • #23 20971097
    _jta_
    Specjalista elektronik
    Posty: 48911
    Pomógł: 3201
    Ocena: 4212
    Ustal, jaką wersją RAR-a to jest pakowane, żeby wiedzieć, która wersja musi być do rozpakowania. Pod Linux-em wystarczy polecenie 'file':
    Kod: less
    Zaloguj się, aby zobaczyć kod
    a w Ubuntu 18.04 jest 'unrar' 5.5, i on to może rozpakować.

    Pod Windows nie wiadomo, co masz do rozpakowania RAR-a - może tylko taki program, który wymaga klikania myszą i bez tego nie rozpakuje. I wtedy trzeba się postarać o inny.
  • #24 20971473
    jvoytech
    Poziom 22  
    Posty: 361
    Pomógł: 61
    Ocena: 136
    pod windowsem można zainstalować 7-zip Link. W terminalu można wydać polecenie do rozpakowania pliku, np. tak
    Kod: Text
    Zaloguj się, aby zobaczyć kod

    a skoro da się to zrobić w terminalu to można to wrzucić do jakiegoś skryptu wraz z innymi poleceniami (np. ściągającymi plik z serwera) i całość zautomatyzować. Skrypt można uruchamiać ręcznie albo stworzyć zadanie w "Task Scheduler", gdzie można ustawić kiedy skrypt ma się uruchamiać
  • #25 20971547
    _jta_
    Specjalista elektronik
    Posty: 48911
    Pomógł: 3201
    Ocena: 4212
    No, jeszcze trzeba te dane przetworzyć, wybrać określone kolumny... takie rzeczy łatwo się robi w Tcl-u, ale nie wiem, jak jest z darmowym Tcl-em dla Windows - dla Linux-a stale jest, dla Windows np. Active Tcl był kilka lat darmowy, teraz chyba jest płatny - to się zmienia, więc nie wiem, które wersje dobrze działają, a jeszcze nie zmieniły się w płatne. Python jest nieco trudniejszy, ale powinien być darmowy na stałe (także pod Windows), i może dużo więcej. A może wystarczyłby program 'cut'? Wszystko zależy od formatu, CSV oznacza "comma-separated values", ale jest wiele różnych wersji CSV, nie zawsze znakiem rozdzielającym jest przecinek (comma), bardziej złożone formatowanie może robić 'sed', albo 'join' (pewnie to wszystko jest np. w ramach MSYS, a na pewno w Linux-ie, o ile nie jest okrojony z podstawowych programów).

    Jakiś opis tego CSV by się przydał - jaki znak rozdzielający pola, czy są jakieś ograniczniki pól (np. pola tekstowe w cudzysłowach)?
  • #26 21150186
    Juhas0
    Poziom 11  
    Posty: 139
    Pomógł: 2
    Ocena: 2
    Powinieneś móc to ogarnąć w PowerAutomate <-- w Windowsie 11 jest darmowy. Tylko nie wiem, czy potrafi odczytać odebraną pocztę. Jeśli nie, to musisz jakiś pierwszy krok człowiekiem wykonać.
  • #27 21150649
    JacekCz
    Poziom 42  
    Posty: 8670
    Pomógł: 760
    Ocena: 1462
    _jta_ napisał:
    się robi w Tcl-u



    Ten jezyk jest martwy od wielu lat, nikt nie powinien sie go na nowo uczyć (nigdy nie był dobrym jeżykiem, zupełnie nie sprawdzające się założenia)
    W każdym punkcie godnie go zastąpi Python, a ma FANTASTYCZNE biblioteki
  • #29 21150924
    JacekCz
    Poziom 42  
    Posty: 8670
    Pomógł: 760
    Ocena: 1462
    _jta_ napisał:
    W jakim sensie martwy?


    A jakie kryterium sobie życzysz ?
    Rankingi języków, ilosć (nowych) projektów na GH, pytań na SO, etatów w ogłoszeniach

    W każdym sensie

    _jta_ napisał:
    I ciekawi mnie, jak chciałbyś zrobić w Python-ie wszystko to, co ja robiłem w Tcl-u.


    Kolega ze studiów pojechał Fiacikiem 126p do Hiszpanii. Nigdy nie opowiadał o Hiszpanii, ale o tym że jechał to zawsze.

    Twoja duma właśnie tak mi sie kojarzy, wracając do pytania

    _jta_ napisał:
    I ciekawi mnie, jak chciałbyś zrobić w Python-ie wszystko to, co ja robiłem w Tcl-u.


    z dużo większą łatwością i ogromnymi zasobami w społeczności. Ładnie, stylowo, obiektowo

    Dodano po 4 [minuty]:

    Nawet już TCL z googla wypadł na daaaalekie miejsca.

    https://www.google.com/search?client=firefox-b-d&q=tcl+language+future%2C+jobs

Podsumowanie tematu

✨ Użytkownik poszukuje sposobu na automatyzację procesu pobierania pliku *.RAR z e-maila, jego rozpakowywania, edytowania zawartości pliku *.CSV oraz przesyłania go na serwer FTP. W odpowiedziach zasugerowano różne podejścia, w tym użycie PowerShell, platform no-code/low-code (np. n8n, IFTTT, Make.com), a także programów takich jak fetchmail i unrar. Wskazano również na możliwość użycia skryptów w Pythonie lub AutoIt, a także na wykorzystanie Windows Subsystem for Linux (WSL) dla użytkowników Windows. Użytkownik został ostrzeżony o potencjalnych zagrożeniach związanych z bezpieczeństwem danych, a także o konieczności znajomości wersji RAR do prawidłowego rozpakowania pliku. Ostatecznie uproszczono wymagania do samego rozpakowywania pliku RAR i przesyłania go na FTP.
Wygenerowane przez model językowy.
REKLAMA