Ich habe eine Frage zu meinem Code. Ich möchte ein True zurückgeben, wenn ein bestimmter Teil meiner vorherigen Zeile gleich dem spezifischen Teil in der aktuellen Zeile ist (in diesem Fall der Z-Teil). Meine Datei sieht wie folgt aus:Finden, ob Teil der vorherigen Zeile gleich ist Teil der aktuellen Zeile in Python
G17 G3 X387.9385 Y200.0000 Z268.4040 R187.9385
G17 G3 X200.0000 Y387.9385 Z268.4040 R187.9385
G17 G3 X200.0000 Y387.9385 Z268.4040 R187.9385
G17 G3 X200.0000 Y353.2089 Z328.5575 R153.2089
So in diesem Fall ich einen wahren möchte, wenn der Wert nach dem „Z“ (268,4040) in Zeile 2 zu diesem Teil in Zeile gleich ist 1. Damit ein wäre Das stimmt hier. Sobald der Wert in der vorherigen Zeile nicht gleich dem Wert in der aktuellen Zeile ist, möchte ich ein False. Das wäre in Zeile 4 der Fall (328.5575 ist nicht gleich 268.4040). Diese Datei heißt "pointZ.gcode" und hat viele Zeilen. Kann jemand mir mit dem Python-Code helfen, der benötigt wird, um zurückzugeben, was ich will? Vielen Dank!
Mein Code so weit:
q = open("pointZ.gcode", "r")
searchlines = q.readlines()
file = ""
for i, line in enumerate(searchlines):
if "Z" in line:
zp0 = map(str, searchlines[i+0].split()[4:5])
zp1 = map(str, searchlines[i+1].split()[4:5])
if zp0 == zp1:
print("T")
else:
print("F")
Das gibt mir den Fehler: Indexerror: Listenindex außerhalb des zulässigen Bereichs
Wo ist Ihr bestehender Code? – Selcuk
Es stürzt ab, weil Sie über ** alle ** Zeilen iterieren und versuchen, auf die nächste Zeile zuzugreifen (mit dem Code 'searchlines [i + 1]'), aber die letzte Zeile ** hat keine ** nächste . Ändern Sie Ihren Code so, dass er entweder in der zweiten Zeile beginnt oder in der vorletzten Zeile anhält. –