Brauchen Sie Hilfe, um Gromac-Datei in Python zu lesen

Ich habe eine gromac-Datei, um spezifische Details daraus zu extrahieren. Dateiformat folgt. Nur ich brauche Werte in jeder Spalte.

Generated by trjconv : a bunch of waters t= 0.00000 3000 1SOL OW 1 1.5040 2.7580 0.6820 1SOL HW1 2 1.4788 2.7853 0.7702 1SOL HW2 3 1.4640 2.8230 0.6243 2SOL OW 4 1.5210 0.9510 2.2050 2SOL HW1 5 1.5960 0.9780 2.1520 2SOL HW2 6 1.4460 0.9940 2.1640 1000SOL OW 2998 1.5310 1.7952 2.1981 1000SOL HW1 2999 1.4560 1.7375 2.1836 1000SOL HW2 3000 1.6006 1.7369 2.2286 3.12736 3.12736 3.12736 Generated by trjconv : a bunch of waters t= 9000.00000 3000 1SOL OW 1 1.1579 0.4255 2.1329 1SOL HW1 2 1.0743 0.3793 2.1385 1SOL HW2 3 1.1514 0.4772 2.0526 2SOL OW 4 2.2976 2.5403 0.1574 2SOL HW1 5 2.2161 2.4981 0.1847 2SOL HW2 6 2.3118 2.6092 0.2223 1000SOL OW 2998 2.5927 1.0233 0.4695 1000SOL HW1 2999 2.5927 0.9869 0.3810 1000SOL HW2 3000 2.5365 0.9642 0.5197 3.10941 3.10941 3.10941 

Ich habe folgende Codes ausprobiert, um es zu lesen.

 F = open('Data.gro', 'r') for line in F: P = line.split('\t') 

Ich möchte Daten wie unten in Float-Variablen extrahieren.

Meine Idee war nach der Aufteilung der Daten als P [3], P [4], P [6] Aber ich habe es versagt. Wenn ich die Datei lese, möchte ich nach immer 3000 Zeilen Informationen überspringen. Es gibt Informationen, die in drei Zeilen nach jeder 3000 Zeile gegeben werden. Und ich möchte auch die ersten beiden Zeilen überspringen. Die .gro-Datei hat ein bestimmtes Format.

Http://manual.gromacs.org/current/online/gro.html

Out put sollte wie unten sein. Ich werde einige Berechnungen mit diesen Werten machen.

Erstes Set

 X = [1.5040, 1.4788, 14640,... , 1.6006] Y = [2.7580, 2.7853, , 1.7369] Z = [0.6820, 0.7702, , 2.2286] 

Zweiter Satz

 X = [1.1579, 1.0743, ,... , 2.5365] Y = [0.4255, 0.3793, ,... , 0.9642] Z = [2.1329, 2.1329, ,... , 0.5197] 

Bitte lesen Sie meine Frage sorgfältig. Ich brauche eine Anleitung, um das Programm zu schreiben. Ich bin neu zu python Ich habe Forschung gemacht, aber ich konnte keine Hilfe finden, um diese Zahlen zu extrahieren.

Vielen Dank

One Solution collect form web for “Brauchen Sie Hilfe, um Gromac-Datei in Python zu lesen”

Schließlich konnte ich das ganze Programm schreiben, um meine gromac-Datei zu lesen. Dies könnte jemandem helfen, wenn Sie Daten aus der Datei grmomac lesen und bestimmte Werte aus ihm extrahieren möchten. Dieser Code wurde angepasst, um 10 Zeilen nach einem bestimmten Ort zu lesen. Ich habe das getan, um 3000 Reihen zu lesen. Das funktioniert 100% erfolgreich.

 F = open('Data.gro', 'r') A = open('XYZ.txt', 'w') XO = [] YO = [] ZO = [] XHW1 = [] YHW1 = [] ZHW1 = [] XHW2 = [] YHW2 = [] ZHW2 = [] I = range(1, 10) with open('Data.gro') as F: for line in F: if line.split()[0] == '3000': A.write('Frame' + '\n') for R in I: line = next(F) P = line.split() if P[1] == 'OW': x = float(P[3]) y = float(P[4]) z = float(P[5]) XO.append(x) YO.append(y) ZO.append(z) else: if P[1] == 'HW1': x = float(P[3]) y = float(P[4]) z = float(P[5]) XHW1.append(x) YHW1.append(y) ZHW1.append(z) else: if P[1] == 'HW2': x = float(P[3]) y = float(P[4]) z = float(P[5]) XHW2.append(x) YHW2.append(y) ZHW2.append(z) else: pass if line.split()[2] == '3000': A.write('Oxygen atoms XYZ coordinates:' + '\n') A.write("%s\n" % (XO)) A.write("%s\n" % (YO)) A.write("%s\n\n" % (ZO)) A.write('Hydrogen 1 atoms XYZ coordinates:' + '\n') A.write("%s\n" % (XHW1)) A.write("%s\n" % (YHW1)) A.write("%s\n\n" % (ZHW1)) A.write('Hydrogen 2 atoms XYZ coordinates:' + '\n') A.write("%s\n" % (XHW2)) A.write("%s\n" % (YHW2)) A.write("%s\n\n" % (ZHW2)) XO = [] YO = [] ZO = [] XHW1 = [] YHW1 = [] ZHW1 = [] XHW2 = [] YHW2 = [] ZHW2 = [] R +=1 else: pass else: pass A.close() 

Thanx einige Leute helfen mir, bestimmte Punkte zu lösen. Thanx geht zu ihnen auch Das ist eine wirklich nette Webseite. Ich mag das. Das hilft viel, Dinge zu lernen.

  • Wie man eine Liste der als Strings gespeicherten Zahlen zusammenfasst
  • Dekorationsmethode (Klassenmethoden Überladung)
  • Python Mastermind Spiel Troubles
  • Wie benutzt man asynchrone Verständnisse?
  • Subprocess.Popen: 'OSError: [Errno 2] Keine solche Datei oder Verzeichnis' nur auf Linux
  • Den Boden eines Schwimmers aufnehmen
  • Wie kann ich python zu cmd in windows hinzufügen
  • Wie schreibe ich Python 2.x so kompatibel mit Python 3.x wie möglich?
  • Wie bekomme ich die erste datetime eines Tages?
  • TypeError: ein Bytes-ähnliches Objekt ist erforderlich, nicht 'str'
  • Iteration über einzelne Bytes in python3
  • Python ist die beste Programmiersprache der Welt.