Wpis z mikrobloga

Hej Mirki-programiści. Pomóżcie, bo już 2 dzień siedzę nad tym i nie mogę.
Mam takie drzewo katalogów:

CCSDTQ-P-_L_FREQs
compound_1
│ ├ basis_set_1
│ │ DUNHAM
│ │ ├ functional_1
│ │ │ *.out
│ │ ├ functional_2
│ │ [...] *.out
│ │ functional_N
│ │ *.out
│ ├ basis_set_2
│ [...]
basis_set_I
compound_2
[...]
compound_J

Z każdego pliku *.out muszę wyciągnąć wartości dla Re, We, WeXe, WeYe, oraz ALPHAe. Nie są one obok siebie, ale ogólnie powiązane, mogą być w różnych miejscach pliku, może ich nie być, ale są z powiązane z tekstem. Na przykład :

` Equilibrium bond distance Re= 1.296196( 0.000002)`
` Harmonic frequency We= 1656.0382( 0.0009)`
` Anharmonic constant WeXe= 11.8240( 0.0015)`
` Second anharmonic constant WeYe= 0.0412( 0.0015)`
` Rotation-vibration coupling constant ALPHAe= 0.016339( 0.000000)`

W efekcie pracy kod powinien stworzyć folder results w folderze CCSDTQ-P-_L_FREQs z plikami w .csv nazwanymi według formatu {basis_set_I}_{property}.csv, które zbierają dane tak jak na przykładzie poniżej.:

COMPOUND {functional_1} {functional_2} {...} {functional_N}
{compound_1} {value_11} {value_12} {value_1...} {value_1N}
{compound_2} {value_21} {value_22} {value_2...} {value_2N}
...
{compound_J} {value_J1} {value_J2} {value_J...} {value_JN}

Mój kod jest tutaj — https://paste.ofcode.org/JpcZpkT9fnT7GVEMaWCPkA
Ale nie działą...
Przykładow output — https://paste.ofcode.org/rbajgYkAdauu6ePDkhT86V
Czemu... ? Docenie pomoc, bo już nie mam siły.

#programowanie #programista15k #naukaprogramowania #python #it #kiciochpyta #pytaniedoeksperta #pytanie
  • 12
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@farmaceut: no opisane całkiem nieźle, ale nie w pełni - ta tabelka compound name - nie wiadomo skąd i czego to tyczy powyżej w twoim przykładzie. Napisałeś - "nie działa" a to też nic nie mówi - uruchamia się? Zwraca błąd? Wyniki są nieprawidłowe?

Zajrzałem na kod i niestety - zgodzę się z Bad wolfem - no nie wygląda to na coś przyjemnego do czytania ;)
Podziel na funkcje, a
  • Odpowiedz
  • 0
@farmaceut: całkiem grube zadanie jak na tag nauka programowania :)

Może i wydaje się proste w ogólnym zamyśle bo to tylko trzy główne elementy:
- znaleźć plik/pliki,
- przeszukać plik,
- stworzyć nowy plik lub dodać do istniejącego pliku
  • Odpowiedz