Blutiger Anfänger braucht Hilfe IndentationError: unexpected indent

Python auf Einplatinencomputer wie Raspberry Pi, Banana Pi / Python für Micro-Controller
Antworten
ftpgonzo
User
Beiträge: 4
Registriert: Donnerstag 1. November 2018, 20:52

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
__deets__
User
Beiträge: 14494
Registriert: Mittwoch 14. Oktober 2015, 14:29

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.
ftpgonzo
User
Beiträge: 4
Registriert: Donnerstag 1. November 2018, 20:52

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
__deets__
User
Beiträge: 14494
Registriert: Mittwoch 14. Oktober 2015, 14:29

Weisst du, wozu die Einrueckungen in Python da sind? Was ist an der Zeile, welche die Fehlermeldung angibt anders, als an der Zeile davor?
ftpgonzo
User
Beiträge: 4
Registriert: Donnerstag 1. November 2018, 20:52

Ehrlich gesagt ... nein ...
Sirius3
User
Beiträge: 17711
Registriert: Sonntag 21. Oktober 2012, 17:20

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.
ftpgonzo
User
Beiträge: 4
Registriert: Donnerstag 1. November 2018, 20:52

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 :)
Antworten