Forum Coders' city Strona Główna Coders' city
Nasza pasja to programowanie!
 

 PomocPomoc   SzukajSzukaj   UżytkownicyUżytkownicy   GrupyGrupy  RejestracjaRejestracja 
Archiwum starego forum + teoria    RSS & Panel/SideBar
 ProfilProfil   Zaloguj się, by sprawdzić wiadomościZaloguj się, by sprawdzić wiadomości   ZalogujZaloguj 

Potrzebuję szybkiej odpowiedzi na moje pytanie... Zasady

Pythone w Notepad++ - prace na plikach xml



 
Odpowiedz do tematu    Forum Coders' city Strona Główna -> Python
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
Caporeira



Dołączył: 26 Lis 2015
Posty: 49

PostWysłany: Pon Gru 07, 2015 12:38 pm  OP    Temat postu: Pythone w Notepad++ - prace na plikach xml Odpowiedz z cytatem Pisownia

Witam,

potrzebuje napisać prosty skrypt/aplikację który będzie pracować na plikach .xml.

Generalnie praca na stringach (bardzo długich) - około 60 wierszy.

Czyli tak, wypisuje wartości np:

33 - > 30
PF01.06 - > PF01.05

60 - > 66
PF01.01 - > PF02.o2


Czyli, mam przykładowy string1 (60 wierszy). Wyszukuje w nim ciagu znaków 33 i zamieniam na 30, szukam PF01.06 i zamieniam na PF01.05.
Ten wyedytowany string2 wklejam

Nastepnie na tym pierwotnym string1
Robię podobną operację szukam 60 i zamieniam na 66, szukam PF01.01 i zaminiam na PF02.02. Kopiuje nowo wyedytowan string3 i wklejam go zaraz pod stringie2.

itd.

Czy zrobić to pod Notepadd++ będze dobrym pomysłem ?
Przydało by się chyba GUI aby mieć gdzie wpisać te wartości.
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
Hashedone



Dołączył: 23 Sie 2008
Posty: 1179

PostWysłany: Pon Gru 07, 2015 1:05 pm      Temat postu: Odpowiedz z cytatem Pisownia

Pytanie - do czego Ci to. W szczególności kto będzie z tego korzystał, kto będzie produkował te pliki, etc. Osobiście bym w ogóle takiego programu nie pisał, bo wpisał bym po prostu w terminalu:
Kod:
sed -i s/60/66/g ./plik.xml
sed -i s/PF01.01/PF02.o2/g ./plik.xml

Jeśli bym potrzebował zrobić to w kilku plikach to analogicznie:
Kod:
sed -i s/60/66/g ./plik1.xml ./plik2.xml ./plik3.xml
sed -i s/PF01.01/PF02.o2/g ./plik.xml ./plik2.xml ./plik3.xml

Lub użył w ogóle maski dla plików:
Kod:
sed -i s/60/66/g ./plik*.xml
sed -i s/PF01.01/PF02.o2/g ./plik*.xml

Jeśli chciał bym to jeszcze komuś przekazać, mógłbym zrobić sobie po prostu z tego skrypt basha:
Kod:
#!/bin/bash

sed -i s/60/66/g ./plik*.xml
sed -i s/PF01.01/PF02.o2/g ./plik*.xml

Lub po prostu przygotował bym diffa:
Kod:
sed -i s/60/66/g ./plik*.xml
sed -i s/PF01.01/PF02.o2/g ./plik*.xml
diff -u ./plik*.xml > ./diff.diff

Kto będzie potrzebował, nałoży sobie diffa patchem - nie potrafię sobię wyobrazić prostszego narzędzia od tych tu przedstawionych (chyba że ktoś bardzo potrzebuje toola graficznego, ale to mamy "znajdź i zamień" w każdym edytorze tekstu, a jeśli potrzebujesz żeby dało się wpisać jedną rzecz która się sprawą zajmie - to dwa ostatnie rozwiązania.

_________________
"Jeśli profesor będzie wymagał, żeby podczas pisania kodu chodzić po ścianach, to student ma obowiązek chodzić po ścianach, bo inaczej nie zaliczy. Podane informacje dotyczą normalnych sytuacji. Profesorowi pisz jak profesor chce." ~ marcin_an, 2008
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
Caporeira



Dołączył: 26 Lis 2015
Posty: 49

PostWysłany: Pon Gru 07, 2015 1:36 pm  OP    Temat postu: Odpowiedz z cytatem Pisownia

Bardzo dziekuje za rzeczową odpowiedź.

Z tego narzędzia w gównej mierze będę korzystał ja, może sporadycznie w przyszłości osoby trzecie.

Chodzi o to że potrzebuje wygenerować teraz około 500 takich stringów z róznymi numerami i nazwami.
W przyszłości też będę korzystał z tego narzędzia i możliwe że będę potrzebował generować wiecej niż 500.

Myslałem o takim narzędniu gdzie będę mógl sobie np wisać:

001,003,004,008 ; PF01.01
130,134,153,162; PF01.02

i to narzędzie mi wygeneruje 4 Stringi (jeden pod drugim) z numerami z pierwszej linii + PF01.01
następnie 4 Stringi z kolejnymi numerami (z drugiej linii) + PF01.02

itd.

Zrobił bym to w Exel (vba) ale problem z formatowaniem jest aby zapisać w formacie xml i aby nie popsuło struktury pliku.

Pozatym, słyszałem że pythone jest przszłościowym lub na czasie językiem programowania i miałbym pretekst aby się go nauczyć.
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
Hashedone



Dołączył: 23 Sie 2008
Posty: 1179

PostWysłany: Pon Gru 07, 2015 2:23 pm      Temat postu: Odpowiedz z cytatem Pisownia

Możesz to zrobić w pythonie - jeśli potrzebujesz jakieś bardziej złożone przekształcenia na tekście, to jest to jeden z najlepszych języków (ew. konkurencją dla niego jest perl, ale jego składnia powstała ponoć przez wpuszczenie kota na klawiaturę - osobiście nie polecam). Tyle, że jeśli chodzi o proste substytucje, to taki program już powstał i nazywa się właśnie sed (pod linuxem "out of the box", w windowsie można zainstalować gnu tools albo cygwina).

Jeśli chodzi o edytor - nie ma znaczenia czy to będzie notatnik, notepad++, czy vim - notepad++ o tyle dobry że koloruje składnię i z grubsza niczym nie przeszkadza. Jeśli chodzi o GUI - tu też notepad++ niewiele ma do powiedzenia (w ogóle GUI do takiej apki bardziej spowalnia niż ułatwia pracę imho, ale jak kto woli - osobiście chyba nigdy nie napisałem pythonowej aplikacji z GUIem). Przy czym przypadki które tu podajesz, są zupełnie rozłączne i bardzo trudno będzie Ci zrobić jedną aplikację, która w zależności od tego co tam podasz, wyrzuci Ci różne dane. Generalnie taką aplikacją jest po prostu python - w zależności jaki zestaw danych chcesz wygenerować, piszesz różne skrypty, ale nie z założeniem że kiedyś go ponownie użyjesz. Co prawda niektóre przypadki (jak ten z podmienianiem wzorca) można zrobić łatwiej (używając na przykład seda), o tyle te bardziej skomplikowane wymagają już trochę "fajniejszych" rzeczy - no i tu możesz użyć basha, pythona, perla, shella, czegokolwiek do pisania skryptów - no i ja polecam pythona (użyjesz go wszędzie i jest zdecydowanie najwygodniejszy) - tyle, że nie ma znaczenia edytor (tak więc pytanie się o to czy notepad++ jest ok, jest bez sensu - cokolwiek co potrafi tworzyć pliki tekstowe jest ok).

Jedna uwaga - jak będziesz uczyć się pythona, zwracaj uwage, czy to jest wersja 2, czy 3 - najlepiej jest uczyć się imho 3, bo jest ciągle rozwijana (2 jest ciągle wspierana, ale nie wiadomo jak długo - nie widzę sensu zaczynać teraz jego nauki).

_________________
"Jeśli profesor będzie wymagał, żeby podczas pisania kodu chodzić po ścianach, to student ma obowiązek chodzić po ścianach, bo inaczej nie zaliczy. Podane informacje dotyczą normalnych sytuacji. Profesorowi pisz jak profesor chce." ~ marcin_an, 2008
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
Caporeira



Dołączył: 26 Lis 2015
Posty: 49

PostWysłany: Pon Gru 07, 2015 2:37 pm  OP    Temat postu: Odpowiedz z cytatem Pisownia

Ok, czyli zostajemy przy python :)

A jakie środowisko polecasz, aby pisać, testować (tak też przyszłościowo).
Eclipse ? Jesz to chyba dosyć uniwersalne narzędzie ?

PS. Wersja 2 ściaga się bez problemu.
Ale 3 to są już różne wersje ? https://www.python.org/downloads/release/python-351/
Mam W7x64
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
Hashedone



Dołączył: 23 Sie 2008
Posty: 1179

PostWysłany: Pon Gru 07, 2015 3:03 pm      Temat postu: Odpowiedz z cytatem Pisownia

Polecam mimo wszystko 3, ściągnij najnowszą wersję. Wersji 3 widzisz więcej, bo jest ciągle rozwijana - możesz korzystać z najnowszej, albo wybrać nieco starszą z jakiś powodów. W przypadku 2 jest "jedyna słuszna" wersja, ponieważ ta gałąź jest już nie rozwijana - jeśli pojawią się nowe wersje, to tylko z bugfixami, bez żadnych nowych rzeczy.

Osobiście do pythona i wszelkich prostych rzeczy (C++ "na szybko", bash, python, pliki konfiguracyjne) używam Vima - ale nie powiem że polecam go początkującemu (osobiście uważam, że zysk jest mały w porównaniu do włożonej w naukę pracy na tym etapie, a problemy z edytorem kiedy ma się jeszcze problemy z językiem są po stokroć bardziej frustrujące). Eclipse osobiście nie polecam (prywatna awersja - są ludzie którzy lubią, uważam że jest strasznie ciężkie i toporne - więcej z tym problemów jak pożytków). Wydaje mi się, że w przypadku pythona mimo wszystko najwygodniej pracuje się z prostym edytorem (może być nawet i ten notepad++) i z konsolą.

_________________
"Jeśli profesor będzie wymagał, żeby podczas pisania kodu chodzić po ścianach, to student ma obowiązek chodzić po ścianach, bo inaczej nie zaliczy. Podane informacje dotyczą normalnych sytuacji. Profesorowi pisz jak profesor chce." ~ marcin_an, 2008
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
Caporeira



Dołączył: 26 Lis 2015
Posty: 49

PostWysłany: Pią Gru 11, 2015 12:17 am  OP    Temat postu: Odpowiedz z cytatem Pisownia

Przydało by mi się jeszcze jakieś narzędzie to sprawdzania poprawności kodu

Tutaj gościu poleca PyCharm - https://www.youtube.com/watch?v=-s4wKoLO520
Ale jest trochę drogi. Czy mógłbyś polecić coś od siebie ?

Pozdrawiam
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
Hashedone



Dołączył: 23 Sie 2008
Posty: 1179

PostWysłany: Pią Gru 11, 2015 9:51 am      Temat postu: Odpowiedz z cytatem Pisownia

A czemu nie wystarczy Ci interpreter pythona? On pokazuje dokładnie gdzie jest błąd. Nie spotkałem się poza PyCharmem z żadnym edytorem pythona który by oferował coś więcej niż odpalanie skryptu kliknięciem, ewentualnie szybkim uruchamianiu testów pyUnitowych - a więc nic specjalnego.
_________________
"Jeśli profesor będzie wymagał, żeby podczas pisania kodu chodzić po ścianach, to student ma obowiązek chodzić po ścianach, bo inaczej nie zaliczy. Podane informacje dotyczą normalnych sytuacji. Profesorowi pisz jak profesor chce." ~ marcin_an, 2008
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
Wyświetl posty z ostatnich:   
Odpowiedz do tematu    Forum Coders' city Strona Główna -> Python Wszystkie czasy w strefie CET (Europa)

Strona 1 z 1

 
Skocz do:  
Możesz pisać nowe tematy
Możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Możesz dodawać załączniki na tym forum
Możesz pobierać pliki z tego forum




Debug: strone wygenerowano w 0.21477 sekund, zapytan = 11
contact

| Darmowe programy i porady Jelcyna | Tansze zakupy w Helionie | MS Office Blog |