2017-11-28 1 views
0

ich einige speicific Daten aus Dateien speichern möchte ich haben, es sieht aus wie etwas wie folgt aus:eine bestimmte Zeichenfolge in einer Datei Suchen und die Zeichenfolge speichern, nachdem sie in einer Datei in Python kommt

[StagePositionMapFile] 
[StageMapPosition] 
XCoordinate=-1.37525e-003 
YCoordinate=-5.52599999999999e-003 
ZCoordinate=9.96477272727273e-003 
RCoordinate=-2.18201293271677 
TCoordinate=-1.19239958528248e-004 
PositionName=Position 14 

[StageMapPosition] 
XCoordinate=-1.40625e-003 
YCoordinate=-5.01925000000001e-003 
ZCoordinate=9.96477272727273e-003 
RCoordinate=-2.18201293271677 
TCoordinate=-9.31942430672605e-005 
PositionName=Position 13 

[StageMapPosition] 
XCoordinate=-1.387625e-003 
YCoordinate=-4.68562500000001e-003 
ZCoordinate=9.96477272727273e-003 
RCoordinate=-2.18201293271677 
TCoordinate=-9.31942430672605e-005 
PositionName=Position 12 

Ich will nur die Daten nach x-Koordinate und y-Koordinate zu halten, so, was ich tat, ist die Datei, und teilen Sie es nach dem Gleichheitszeichen dann die lign Rückkehr zu lesen, wie Sie hier auf meinen Code sehen:

with open("E:/WOrk/PHD/SEM_images/NS65/Systematic_study/100_uM /NS_65_6_K_15_mM_100_uM_B4_66%_60_s/positionw.txt","r") as openfile: 



    for line in openfile : 


     s=line.split("=") 


     for index,line in enumerate(s) : 


      list=[index,line] 
      list2=line.split("\n") 

ich aber don‘ t verstehe wirklich, was in der line.split ("\ n") ist, weil ich nur eine Liste mit t bekomme er Werte nach dem = Zeichen und ich bekomme nicht den XCoordinate String in der Liste.

Zweite Sache ist, dass ich dann sagen möchte, wenn XCoordinate in der Liste gefunden wird, nehmen Sie die Zeichenfolge nach. Ich weiß, dass ich das mit enumerate und dem Index machen kann. Aber wenn ich versuche, nur um wahr zu drucken, wenn x-Koordinate in dort ist es nichts drucken ...

Am Ende möchte ich etwas wie folgt aus:

(values of XCoordinate)   (values of YCoordinate) 
-1.37525e-003     -5.52599999999999e-003 

EDIT:

I mein Code geändert und eine Liste aller Wörter in meiner Datei Text gemacht:

with open("E:/WOrk/PHD/SEM_images/NS65/Systematic_study/100_uM/NS_65_6_K_15_mM_100_uM_B4_66%_60_s/positionw.txt","r") as openfile: 


     separate=list() 
     for line in openfile : 


      s=line.split("=") 


      for element in s : 

       element2=element.split("\n") 

       for value in element2: 


        separate.append(value) 

     for index,valeur in enumerate(separate) : 

      chaine="XCoordinate" 
      print(valeur) 
      print("stop") 
      if chaine in valeur : 

       print("true") 

Jetzt sollte ich wahr, jedes Mal bekommen x-Koordinate jedoch zeigt sich, ist es nicht der Fall:/

Danke für Ihre Hilfe.

Mathais

+0

zeigen, wie das erwartete Ergebnis aussehen sollte – RomanPerekhrest

+0

ich die Post aktualisiert, so dass Sie das erwartete Ergebnis –

+0

Ihr erwarteter Ausgang nur Werte ersten X/Y enthält sehen können, warum? – RomanPerekhrest

Antwort

0

ich das Skript für Sie

text='' 
    regx =re.compile('((XCoordinate=[-]{0,1}[0-9]*.[0-9]*e-[0-9]*)\n(YCoordinate=[-]{0,1}[0-9]*.[0-9]*e-[0-9]*))') 
    with open('test.txt', 'r+') as file: 
     for line in file: 
      text += line 

    find = re.findall(regx,text) 
    print ('findaa ', find) 

und die aus sein wird, arbeiten denkt

[('x-Koordinate = -1.37525e-003 \ nYCoordinate = -5,52599999999999 e-003 ', ' XCoordinate = -1,37525e-003 ',' YCoordinate = -5,52599999999999e-003 '), (' XCoordinate = -1,40625e-003 \ nYCoordinate = -5,01925000000001e-003 ', 'XKoordinate = -1.40625e-003', 'YCoordinate = -5.0192500000000001e-003'), ('XKoordinate = 1.387625e-003 \ nYCoordinate = -4.68562500000001e-003', 'XCoordinate = 1.387625e-003', ‚y-Koordinate = -4.68562500000001e-003‘)]

Verwandte Themen