Konwerter (python)

0

Witam,

Proszę o pomoc przy budowie konwertera plików, konwerter pobiera (czyta linijka po linijce) dane z pliku. Dane w pliku są z reguły w czterech kolumnach jednakże zdarza się także że brak jest danych w kolumnie:

 182    -21.21320343           0.000    -21.21320343
 183    -27.71638680           0.000    -11.48050308
 184    -30.00000000
 185    -27.71638680           0.000     11.48050308
 186           0.000           0.000     
 187           0.000           0.000    -30.00000000
 188    -25.90019989    -10.70466328    -10.70466328
  1. Proszę o pomoc jak poprawić ten kod aby w przypadku braku danych w kolumnie wejściowej program przypisywał zawsze 0.
  2. Obecnie zakończenie czytania linii jest wystąpienie słowa "$EndNodes" jak mogę poprawić aby nastąpiło zakończenie czytania jak wystąpi tylko początek np. "$" (występują różne kombinacje np. $EndNodes. $EndElement ...)?

#----read and write until '$EndNodes----------------------
ss=""
while True:
s=fi.readline()
s1=s.strip() #chomp
if (s1 == "$EndNodes" ):
break
s2=s1.split() #split with space
fo.write("%d,%10e,%10e,%10e\n" % (int(s2[0]) , float(s2[1]) , float(s2[2]) , float(s2[3])))

Pozdrawiam

2

Spróbuj użyć paczki pandas i np. funkcji pandas.read_table
Nie będziesz musiał czytać linijka po linijce oraz zyskasz szybkość i przejrzystość kodu :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1