Anfänger braucht Hilfe beim Weiterkommen in einem Projekt

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

roschi hat geschrieben:- die ``exit()``-Funktion scheint mir irgendwie arg sinnlos zu sein.
die braucht es wegen dem menue-kram
Wo? Ich sehe nur, dass du ``exit()`` mit einem Returncode ausfühst und ``choosed`` immer ``None`` ist und in der Funktion auch gar nicht verwendet wird.
roschi hat geschrieben:- ``os.system`` wäre durch ``subprocess.call`` zu ersetzen.
Traceback (most recent call last):
File "C:\projects\tel\tel.py", line 194, in <module>
main()
File "C:\projects\tel\tel.py", line 186, in main
clear()
File "C:\projects\tel\tel.py", line 16, in clear
subprocess.call("cls")
File "C:\Python25\lib\subprocess.py", line 444, in call
return Popen(*popenargs, **kwargs).wait()
File "C:\Python25\lib\subprocess.py", line 594, in __init__
errread, errwrite)
File "C:\Python25\lib\subprocess.py", line 816, in _execute_child
startupinfo)
WindowsError: [Error 2] Das System kann die angegebene Datei nicht finden
In dem Fall ``shell=True``, weil ``cls`` und ``clear`` eingebaute Befehle der Shell sind. Außerdem ist es zu bevorzugen, den Subprocess-Befehlen Listen statt Strings zu übergeben.
roschi hat geschrieben:- (wobei ich das clearen irgendwie generell unpraktisch finde)
NAJA - das ist ansichtssache, aber gut:
Das hat sich ziemlich universell so durchgesetzt, ich nutze kein einziges Programm unter Linux dass die Konsole leert (und ich bin ziemlich sicher, dass ich mehr Konsolenprogramme unter Linux nutze als du unter Windows). Wenn man vollständige Kontrolle über das Konsolenfenster haben will, verwendet man meist eher ncurses, womit man dann ganze grafische Oberflächen macht, mit Eingabemasken und allem.
roschi hat geschrieben:- was "choosed" ist, ist mir hingegen völlig unklar.
die stelle des menueeintrages in der menue-liste, der gewaehlt wurde.
"Meinten Sie: choice?" ;)
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
roschi
User
Beiträge: 225
Registriert: Samstag 29. März 2008, 18:58
Wohnort: Thueringen, Deutschland
Kontaktdaten:

Leonidas hat geschrieben:"Meinten Sie: choice?"
AUA! - :shock: - wie peinlich! nein, ich meinte 'chosen'.
aber gut, ich habe nun das 'ConsoleMenu'-Modul umgeschrieben, und jetzt braucht man das nicht mehr - war sowieso schwachsinn!

außerdem kann man sich nun aussuchen, ob man das script mit oder ohne cleaning laufen lassen moechte.

hier ist das script, und hier das 'ConsoleMenu'-Modul.

lg
roschi
[size=117]Fuer Alle, die in Python einsteigen wollen, kann ich das Buch [url=http://abop-german.berlios.de/]A Byte of Python[/url] nur waermstens empfehlen![/size]
moreeze
User
Beiträge: 6
Registriert: Freitag 21. November 2008, 00:51

Hi zusammen!
Also ich hab mir eure Posts durchgelesen und auch schon angefangen mir das alles durchzuarbeiten, allerdings hab ich eine Zwischenfrage:

Ich hab mir das Tutorial zum Speichern von Einträgen durchgelesen und habe dazu eine Frage:

Zum Speichern von Text in einer Textdatei muss man das nach dem Tutorial so machen:

Code: Alles auswählen

# Schreiben
s = "Das ist mein Text"
f = file("dateiname.txt", "w")
f.write(s)
f.close() 
Nun möchte ich allerdings meine Eingaben in diese Datei schreiben und diese Textdate nach zwei Eingaben, die gemacht wurden benennen.
Das heißt wenn jemand Max Mustermann heißt, dann soll die Textdatei "mustermannmax.txt" heißen...
Dazu sollen halt die Eingaben da rein wo jetzt "Das ist mein Text" steht, wie geht das?

Das bekomm ich leider nicht hin. Vllt könnt ihr mir ja helfen wie ich da weiterkomme!

Lg Moreeze
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

Damit kannst du ein bisschen herumbasteln:

Code: Alles auswählen

name = "Max Mustermann"
dateiname = "".join(name.split()[::-1]).lower()+".txt"
datei = open(dateiname,"w")
datei.write(name)
datei.close()
moreeze
User
Beiträge: 6
Registriert: Freitag 21. November 2008, 00:51

Danke dafür!!!

Habs auch soweit erstma hinbekommen, nur dass auch alle Eingaben übertragen werden klappt noch nicht, ich glaube ich mache irgendetwas mit der Liste falsch:

Code: Alles auswählen

                    # Informationen für die Datei
                    kennung = name + vorname
                    writelist = [
                        "Name: " + name, + " " + "Vorname: " + vorname \n,
                        "Adresse: " + adresse \n,
                        "PLZ, Wohnort: " + wohnort \n,
                        "Telefon: " + telefon \n,
                        "Handy: " + handy \n,
                        "Email: " + email \n,
                        "Code: " + code
                    ]
                    # In Datei schreiben
                    dateiname = "".join(kennung.split()[::-1]).lower()+".txt"
                    datei = open(dateiname,"w")
                    datei.write(writelist)
                    datei.close()
Vllt kann ja jemand helfen!

Gruß
Moreeze
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

moreeze hat geschrieben:Hallo zusammen!
Ich bin neu hier im Forum und genauso neu in der Welt von Python.
Das zeigt deine letzter Code auch ganz deutlich.

Ich denke, es wäre der richtige Weg, dass du dir mal ausreichend Zeit nimmst, das Python-Tutorial oder ein ordentliches Python-Buch (zumindest die ersten Kapitel davon) durchzuarbeiten. Deine Probleme sind grundlegender Natur.
abgdf

Oben hatte ich schon geschrieben:
Versuch' doch auch zuerst, die Funktionalität in den Griff zu kriegen: Willkommensbildschirm, Passwortabfrage usw. können dann später dazukommen.
Das gilt für die Verwaltung mehrerer Benutzer entsprechend.

Gruß
moreeze
User
Beiträge: 6
Registriert: Freitag 21. November 2008, 00:51

Hi!
Das hab ich doch auch gar nicht mehr drin...
Es geht mir ja nur drum die Eingaben in die Datei zu schreiben, aber ich krieg das mit dem Einfügen der Eingaben nicht hin...=(
BlackJack

@moreeze: Deswegen sollst Du ja Python lernen, damit Du das selber hinbekommst und nicht einfach Quelltext von anderen zusammen kopierst ohne zu verstehen was da passiert. Du kannst mir nämlich nicht erzählen, dass Du verstanden hast, was Numerix' Zeile mit dem Dateinamen macht. Wenn Du's nicht verstehst, solltest Du's nicht verwenden, sondern so lange Python lernen bis Du weisst *warum* die Zeile den gewünschten Dateinamen liefert.

Auch das Du `kennung` erst zusammen setzt, um es dann später mit `str.split()` wieder zu trennen, zeigt, dass Du wohl eher "programming by accident" betreibst, statt planvoll vorzugehen.

Dein Quelltextschnipsel ist syntaktisch nicht korrekt. Das sollte Dir Python aber auch ziemlich deutlich mit einem `SyntaxError` sagen.
Antworten