Aktywne Wpisy
King_of_the_savannah +196
Aparycja cygana zawsze będzie dla nich atrakcyjniejsza niż polusa
#p0lka #blackpill #przegryw #grecja #niebieskiepaski #rozowepaski #logikarozowychpaskow #zwiazki #szarpankizzyciem
#p0lka #blackpill #przegryw #grecja #niebieskiepaski #rozowepaski #logikarozowychpaskow #zwiazki #szarpankizzyciem
KIaudiuszeq +893
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 dlaRe
,We
,WeXe
,WeYe
, orazALPHAe
. 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 folderzeCCSDTQ-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
Komentarz usunięty przez autora Wpisu
awk '/Equilibrium bond distance Re=/ {print $NF}' dane.out
import os
def find
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
Mam ponad 1000 plików .out
W każdym do 5 zmiennych, które szukam
W 3 różnych bazach
W 17 różnych funkcjonałach.
... no nie zrobię tego ręcznie. Przecież to zajmie wieki
https://paste.ofcode.org/3bR6qr8zt8KCbRHNPTm2S6a
Ale awk, grep, cat, echo będzie szybsze i efektywniejsze. Ale jak wolisz
awk
,grep
,cat
iecho
to juz w ogole nie wiem jak zrobic... Zwłaszcza, ze musze mieć to w formie tabelki, aby potem otworzyć w ExceluMoż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
Komentarz usunięty przez autora Wpisu