Seite 1 von 1

Blutiger Anfänger braucht Hilfe IndentationError: unexpected indent

Verfasst: Donnerstag 1. November 2018, 21:01
von ftpgonzo
Hallo zusammen habe folgenes Script bei mir auf dem PI eingebunden..


#!/usr/bin/env python
# -*- coding: utf-8 -*-

import sys, getopt
import uuid

log_file_directory = "/home/pi/logs" # don't use a '/' at the end!
log_file_name = "sniffed.txt"

def main(argv):
opts, args = getopt.getopt(argv,"s:")

for opt, arg in opts:
if opt == '-s': #meaning there's valid args/codes in it
full_log_file_name = log_file_directory + "/" + log_file_name
with open(full_log_file_name, 'a') as outfile:
sniffed_code = arg + "\n"
outfile.write(sniffed_code)

if __name__ == "__main__":
main(sys.argv[1:])



Wenn ich es starte kommt aber :

Call python /home/pi/bin/sniffer.py -s 13057193
File "/home/pi/bin/sniffer.py", line 17
with open(full_log_file_name, 'a') as outfile:
^
IndentationError: unexpected indent

Dachte es liegt am Dateipfad aber das war es wohl nicht :(


danke schonmal

Re: Blutiger Anfänger braucht Hilfe IndentationError: unexpected indent

Verfasst: Donnerstag 1. November 2018, 21:26
von __deets__
Hast du die Fehlermeldung mal gegoogelt? Das ist etwas, das einem in den ersten 2 Minuten Python Tutorial beigebracht wird. Einrueckungen sind in Python wichtig. Weswegen es auch wichtig ist, dass du deinen Code hier in den dazugehoerigen Tags postest, denn sonst gehen die verloren, und der Code verliert seine Bedeutung. Und wir koennen dir nicht helfen.

Re: Blutiger Anfänger braucht Hilfe IndentationError: unexpected indent

Verfasst: Donnerstag 1. November 2018, 21:31
von ftpgonzo
Wow, das ging ja schnell ... ja , hänge da jetzt 2 Tage dran .. finde den fehler einfach nicht ....

Code: Alles auswählen

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import sys, getopt
import uuid

log_file_directory = "/home/pi/logs" # don't use a '/' at the end!
log_file_name = "sniffed.txt"

def main(argv):
  opts, args = getopt.getopt(argv,"s:")

  for opt, arg in opts:
    if opt == '-s': #meaning there's valid args/codes in it
      full_log_file_name = log_file_directory + "/" + log_file_name
        with open(full_log_file_name, 'a') as outfile:
          sniffed_code = arg + "\n"
          outfile.write(sniffed_code)

if __name__ == "__main__":
  main(sys.argv[1:])
und hier die Fehlermeldung

Code: Alles auswählen

python sniffer.py
  File "sniffer.py", line 17
    with open(full_log_file_name, 'a') as outfile:
    ^
IndentationError: unexpected indent
und wenn ich python - m eingebe kommt das ...

Code: Alles auswählen

Traceback (most recent call last):
  File "/usr/lib/python2.7/runpy.py", line 163, in _run_module_as_main
    mod_name, _Error)
  File "/usr/lib/python2.7/runpy.py", line 102, in _get_module_details
    loader = get_loader(mod_name)
  File "/usr/lib/python2.7/pkgutil.py", line 464, in get_loader
    return find_loader(fullname)
  File "/usr/lib/python2.7/pkgutil.py", line 474, in find_loader
    for importer in iter_importers(fullname):
  File "/usr/lib/python2.7/pkgutil.py", line 430, in iter_importers
    __import__(pkg)
  File "sniffer.py", line 17
    with open(full_log_file_name, 'a') as outfile:
    ^
IndentationError: unexpected indent
evtl bin ich ja nicht ein aussichtloser fall ;)

danke nochmals

Re: Blutiger Anfänger braucht Hilfe IndentationError: unexpected indent

Verfasst: Donnerstag 1. November 2018, 21:34
von __deets__
Weisst du, wozu die Einrueckungen in Python da sind? Was ist an der Zeile, welche die Fehlermeldung angibt anders, als an der Zeile davor?

Re: Blutiger Anfänger braucht Hilfe IndentationError: unexpected indent

Verfasst: Donnerstag 1. November 2018, 21:38
von ftpgonzo
Ehrlich gesagt ... nein ...

Re: Blutiger Anfänger braucht Hilfe IndentationError: unexpected indent

Verfasst: Donnerstag 1. November 2018, 21:41
von Sirius3
Wie hast Du denn Python gelernt, dass dort nicht erklärt wird, dass jeder Block an seiner Einrückung erkannt wird?
Zum restlichen Code: `getopt` wird seit Jahrzehnten nicht mehr benutzt. uuid wird importiert aber nicht benutzt. Zum Zusammenbauen von Pfaden benutzt man `os.path.join`, dann ist auch der Kommentar in Zeile 7 unnötig. Eingerückt wird immer mit 4 Leerzeichen pro Ebene, dann passiert es auch nicht so leicht, dass man da eine Einrückung nur halb macht.

Re: Blutiger Anfänger braucht Hilfe IndentationError: unexpected indent

Verfasst: Donnerstag 1. November 2018, 21:46
von ftpgonzo
Bis dato garnicht, war ein fertiger Code ... bis dato hat das alles so geklappt ohne einlesen .. aber hier beiss ich mir diesmal ein zahn aus ...

Danke für den Tipp mit os.path.join :)