2016-03-29 10 views
0

Ich habe ein Python-Skript, das eine CSV-Datei mit Daten lädt und dann Funktionen in jeder Zeile mit einer for-Schleife ausführt. Es funktioniert alles gut, abgesehen davon, dass es konsequent bei Artikelnummer 247 endet. Keine Fehlermeldung, ich komme nur zu einer Eingabeaufforderung zurück.Debuggen einer for-Schleife, die abstürzt

Ich habe versucht, Debug-Anweisung eingeben, um einzugrenzen, was passiert ist bu Ich bin immer noch nicht klarer, da es keine Fehlermeldung gibt.

Gibt es eine Möglichkeit zum Ausführen von Windows Python ist eine Art ausführlicher Modus, so dass ich es laufen sehen kann und sehen, warum meine Schleife aufhört?

+0

Sind Sie sicher, dass es nicht 257 ist? Es ist eine der magischen Zahlen in CPython-Implementierung: http://StackOverflow.com/Questions/306313/ISOperator-behaves-unexpectedly-with-integers –

+0

versuchen Sie, einige Zeilen von Ihrem CSV und Code-Beispiel zu – aks

+1

Sie können auschecken ' pdb' der Python-Debugger –

Antwort

3

Sie könnten das Modul pdb mit einer selektiven if-Bedingung verwenden, um es nur für die Zeile mit dem Eintrag 247 aufzurufen. So etwas wie unten, die den interaktiven Debug-Modus für den Fall geben, wenn seine nicht funktionieren:

for line in csvfile: 
    if row_item == 247: 
     import pdb; pdb.set_trace() 
    # regular processing here 

Von dort können Sie step in die Funktion zu verstehen, was nicht funktioniert.