[Python] While Schleife und Excel Problem


Razortide

Grünschnabel
Hallo zusammen,

folgendes Problem: Ich möchte mittels Python einige Daten aus mehreren Excel-Dateien auslesen. Das klappt an und für sich auch problemlos, allerdings habe ich jetzt ein Problem mit einer Endlosschleife nud finde einfach nicht den Fehler.
Die Daten werden ausgelesen, und es ist auch das Abbruchkriterium mit dabei, allerdings erkennt die Schleife das nicht an...

Was mache ich falsch?

Code:
excel_workbook = excel_app.Workbooks.Open(v_path+v_xls)
	excel_sheet = excel_workbook.Worksheets("Standard")
	# Die Überschrift befindet sich in Zeile 7, daher wird der Zeiger auf 8 gesetzt
	i = 8
	# Solange das Programm nicht die Zelle findet, die EOF (= End of File) enthält,
	while (excel_sheet.Cells(i,2).Value is not 'EOF'):
		print excel_sheet.Cells(i,2).Value
		# und solange die Zeile nicht leer ist
		if excel_sheet.Cells(i,2).Value is not None:
			# wandelt es die gefunde Zahl in String um, wirft eine etwaige .0 am Ende weg und übergibt diesen Wert an p_ListeBefüllen
			# weiter, wenn der Ausdruck danach nur aus Ziffern besteht, und der Zeiger wird auf eine Zeile weiter gestellt.
			v_toString = str(excel_sheet.Cells(i,2))
			l_insert = v_toString.split('.')
			if l_insert[0].isdigit():
				p_ListeBefuellen(l_insert[0])
				i = i + 1
			else:
				i = i + 1
		# ist die Zeile leer, so wird lediglich der Zeiger auf die nächste Zeile gestellt
		else:
			i = i + 1
Gruß

Razortide
 

deepthroat

Erfahrenes Mitglied
Hi.

Der is-Operator vergleicht die Identität zweier Objekte und gibt true zurück falls es sich um das gleiche Objekt handelt. Da aber der Value und 'EOF' nicht die gleichen Objekte sind (höchstens gleich) terminiert die Schleife nicht.

Du solltest in der Bedingung der while Schleife den != Operator verwenden, der gibt false zurück falls die zu vergleichenden Objekte gleich sind (beide den gleichen Wert haben).

Gruß
 
Zuletzt bearbeitet:

Neue Beiträge