Python, Konsole schließt sich bei Fehler?

2 Antworten

Dann führe es doch manuell in der Konsole aus:

python <Pfad_zu_deinem_Programm> <Commandline_Parameter>

Statt "python" kann es auch "python3" oder der Pfad zur Python-Installation, die du nutzen möchtest, sein.

Wolfram171 
Fragesteller
 12.12.2023, 19:53

Also mit dem Installations-Pfad hab ich es schon probiert und es kommt das selbe raus. Aber was meinst du mit python 3 ? Also ich hab die neuste Version 3.11

0
Destranix  12.12.2023, 19:55
@Wolfram171
python3 <Pfad_zu_deinem_Programm> <Commandline_Parameter>

meinte ich.

Aber wenn du das schon versucht hast ist esnkomisch. Da sollte sich kein neues Fenster öffnen.

Welchen Befehl genau hast du denn eingegeben?

0
Wolfram171 
Fragesteller
 12.12.2023, 20:04
@Destranix

Also vorher (als es auch geklappt hatte habe ich einfach aus dem Explorer die Datei in den CMD "gezogen" und ich habs gerade mal ausprobiert mit python 3 davor schriben da ist folgene Fehlermeldung rasugekommen

 C:\Users\jonas\OneDrive\Desktop\Python_Programme\csv.lesen.py

 File "<stdin>", line 1

  C:\Users\jonas\OneDrive\Desktop\Python_Programme\csv.lesen.py

    ^

SyntaxError: unexpected character after line continuation character

>>>

0
Destranix  12.12.2023, 20:06
@Wolfram171

Schreib doch mal deinen ganzen Befehl rein. Die Fehlermeldung klingt komisch, evtl. reichen aber Anführungszeichen um den Pfad.

0
Wolfram171 
Fragesteller
 12.12.2023, 20:12
@Destranix

Das war der Code ich halt vorher Python 3 eingegeben und Enter und dann den Pfad und wenn ich Anführungszeichen drum mache kommt das raus

>>> "C:\Users\jonas\OneDrive\Desktop\Python_Programme\csv.lesen.py"

 File "<stdin>", line 1

  "C:\Users\jonas\OneDrive\Desktop\Python_Programme\csv.lesen.py"

  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape

>>>

0
Destranix  12.12.2023, 20:15
@Wolfram171

Und das ist sicher eine CMD was du da hast?

Oder hast du folgendes gemacht:

python3 <Enter>
"C:\Users\jonas\OneDrive\Desktop\Python_Programme\csv.lesen.py" <Enter>

Das ist falsch.

In dem Falle mach einmal

exit()

Dann bist du wieder in der CMD-Umgebung und nicht in der Python-Konsole.

0
Wolfram171 
Fragesteller
 12.12.2023, 20:18
@Destranix

Ja, das hatte ich greade gemacht aber das normale hab ich vorher gemacht und das Programm funktioniert ja ber es kommt halt eine Fehlermeldung und die kann ich nicht sehen

0
Destranix  12.12.2023, 20:21
@Wolfram171

Aber das sollte sich eben in derselben Konsole öffnen nicht in einem neuen Fenster.

0
Destranix  12.12.2023, 20:28
@Wolfram171

Aber ich kann es halt nicht evrifizeiren, wenn du nicht das eingibst, was ich will.

Also schreib mir doch mal, was du eingibst basierend auf meiner Antwort, dann kann ich sehen, ob du da was falsch machst.

0

Guten Tag,

es wäre sinnvoll folgende Dinge beizulegen:

  1. Eine Kopie des Quellcodes in Textform, damit man das Programm testen und debuggen kann.
  2. Die CSV-Datei, welche zum Testen benötigt wird, oder ein kurzes Beispiel.

Ich habe den Code schnell abgetippt. (Ich beherrsche das 10-Finger Tippen bis zur Perfektion.) Hier ist er zu sehen, probiert ihn gerne einmal aus:


print("Mein name ist...")

suche = input("Name: ")

list_babys = []
namen = []

with open("babynames.csv") as bn:
    for line in bn:
        data = line.strip().split(",")

        if data[1] == suche:
            data.append(list_babys)
            data[1].append(namen)

anzahl_namen = len(namen)

if suche[len(suche) - 1] == "s":
    1+1
else:
    suche = suche.join(s)

print(f"Es gibt {anzahl_namen}. {suche}!\n")
detail = input("Wollen  sie eine detalliertere Liste sehen?")
klein_detail = detail.lower()
if klein_detail == "ja":
    print(list_babys)
input("Zum beenden ENTER")

Das Dateiformat ist mir etwas schleierhaft, daher habe ich hier etwas gemutmaßt und bin zu folgenden Beispiel-Daten gekommen:

a,Ben
a,Tom
a,Kim
a,Joe
a,Doe
a,Foo
a,Bar

Wenn ich das Programm ausführe, kommt ein Fehler: Nämlich "AttributeError: 'str' object has no attribute 'append'" in Zeile 15. Dies liegt daran, dass du versuchst die Liste "namen" an den Text data[1] anzuhängen. Das ist falsch. Stattdessen müsstest du den Text der Liste hinzufügen. Nämlich so:

namen.append(data[1])

Des Weiteren ergibt Zeile 20 überhaupt keinen Sinn. (" 1 + 1") Was soll diese Zeile bezwecken?

Fazit:

Das Programm / die Konsole schließt sich, weil dein Programm nicht funktioniert, bzw. viele Fehler enthält.

Lösung:

Installiere eine gute IDE, wie etwa PyCharm. Dort werden dir deine Fehler farblich hervorgehoben und mit einer Erklärung versehen. Außerdem schließt sich die Konsole in PyCharm nicht, wenn dein Programm abstürzt, sondern zeigt eine ausführliche Fehlermeldung. Nutze diese Informationen, um deine Fehler Stück für Stück abzuarbeiten. Es befinden sich mehrere im Code, daher schließt sich das Programm. Der oben genannte Fehler ist leider nur einer von vielen.

Bsp.:

Bild zum Beitrag

Hier ist außerdem noch von Fehlern befreiter Quellcode, der nicht abstürzt. Ob dieses Programm allerdings deinen Anwendungszweck erfüllt, weiß ich leider nicht:


print("Mein name ist...")

suche = input("Name: ")

list_babys = []
namen = []

with open("babynames.csv") as bn:
    for line in bn:
        data = line.strip().split(",")

        if data[1] == suche:
            data.append(list_babys)
            namen.append(data[1])

anzahl_namen = len(namen)

if suche[len(suche) - 1] == "s":
    1+1
else:
    suche = suche.join("s")

print(f"Es gibt {anzahl_namen}. {suche}!\n")
detail = input("Wollen  sie eine detalliertere Liste sehen?")
klein_detail = detail.lower()
if klein_detail == "ja":
    print(list_babys)
input("Zum beenden ENTER")

Hochachtungsvoll,

Rainer von Wink

Woher ich das weiß:Berufserfahrung
 - (Code, Python, Programmiersprache)