Frage von sherlockhomelez, 32

Python Indentation Error?

Ich versuche meinen Raspberry Pi mit Telegram zu steuern bekomme aber wenn ich Reboot an den Pi sende folgenden Fehler

File "/home/alex/tg/tg_actions.py", line 15 uptime_seconds = float(f.readline().split()[0]) ^ IndentationError: expected an indented block Telegram-cli version 1.4.1, Copyright (C) 2013-2015 Vitaly Valtman Telegram-cli comes with ABSOLUTELY NO WARRANTY; for details type show_license'. This is free software, and you are welcome to redistribute it under certain conditions; typeshow_license' for details. Telegram-cli uses libtgl version 2.1.0 Telegram-cli includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit. (http://www.openssl.org/) I: config dir=[/home/alex/.telegram-cli]

die tgactions.py datei sieht so aus:

!/usr/bin/python

import sys import os from datetime import timedelta

if sys.argv[1] == "shutdown": print "Das System wird heruntergefahren" os.system("shutdown now") elif sys.argv[1] == "reboot": print "Das System wird neugestartet" os.system("shutdown -r now") elif sys.argv[1] == "uptime": with open('/proc/uptime', 'r') as f: uptime_seconds = float(f.readline().split()[0]) uptime_string = str(timedelta(seconds = uptime_seconds)) print(uptime_string[:-7]) #else: #falls kein Argument zutrifft

Wie kann ich den Fehler beheben?

Antwort
von holofoxx, 15

Hallo sherlockhomelez,

Indentation Error ist ja, wenn du in Python nicht ordentlich den Tab verwendest. Dann steht ein Teil von einem Schleifenbody weiter innen oder außen, oder bei einer Funktion, etc. wo man halt auch immer indentieren muss. 

Du solltest deinen Code nochmal überprüfen. Indentions auch immer mit der Tab-Taste machen, es kann sein dass da mal was verwechselt wird. Und Auto-Indention aktivieren in deinem Editor. In Sublime Text zB ist es mir schon oft vorgekommen, dass ich den selben Fehler bekommen habe obwohl alles richtig war. Hab dann einfach nochmal Zeile für Zeile alles neu kopiert und wieder eingefügt. Den Grund weiß ich immernoch nicht. Vielleicht der Automatische Zeilenumbruch nach 80 Zeichen den ich eingestellt habe. 

Ich hoffe das hilft und viel Spaß noch mit dem Pi und dem interessanten Programm :)

Grüße foxx

PS: Den konkreten Ort in deinem Code kann ich dir leider nicht sagen, da hier alles nur wirrer Matsch ist.

Kommentar von sherlockhomelez ,

Danke :) war tatsächlich ein Tab den ich nicht gemacht habe der zu diesem Problem geführt hat.

Jetzt funktioniert alles..

Gibt es Auto-Indention auch wenn man übers Terminal in Ubuntu codet? dazu finde ich nämlich nichts..

Jedenfalls Vielen Dank :)

Kommentar von holofoxx ,

Ich weiß nicht welchen Editor du verwendest aber mit Vim geht das so wie ich das gerade sehe.

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten