Seite 1 von 1

memo

Verfasst: Dienstag 24. Februar 2004, 16:07
von lasius
Hallo Leute,

erstmal bin ich froh das es Euer (hoffentlich auch bald unser :wink: ) Python-Forum existiert.
Wie damals im http://www.debianforum.de lese ich hier oft noch Bahnhof. Wird schon. :shock:

Nun mal meine Einsteiger Frage die ich auf den 13 Seiten im Allgemein teil nicht wirklich beantwortet fand.
Theorie:
Ich möchte eine memo Datei erstellen. Es soll ein kleiner Dialog sein dessen Eingabe mit Datum dann in eine Textdatei geleitet werden soll.
Praxis:
Wie leite ich raw_input Eingaben in eine Textdatei? Ich möchte die Eingaben immer in ein und derselben Textdatei speichern.
Unter Linux kenne ich z.B. AufrufXYZ > text

Brauch ich dafür ein modul?
Für Datum kann ich dann das modul calender nehmen?

Besten Dank scho'mal

lasius

Verfasst: Dienstag 24. Februar 2004, 16:53
von Dookie
Hi lasius,

erstmal herzlich willkommen im Pythonforum.
Also direkt die raw_input-Eingabe in eine Textdatei umzuleiten ist keine gute Idee. Du nimmst Dir die Möglichkeit die Eingabe zu überprüfen und zu Formatieren. Zum Schreiben von Daten in eine Datei musst Du diese erst öffnen.

Ich hab Dir mal ein Beispielscript auf die schnelle zusammengestrickt:

Code: Alles auswählen

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
"""
    Modul:          memo1
    Description:    Schreibt Memos in eine Datei
    Version:        V0.1
    Copyright:      2003 by Fritz Cizmarov fritz(at)sol.at
    Created:        24. Feb. 2004
    Last modified:  24. Feb. 2004
    License:        free
    Requirements:   Python2.3
"""

from os import path
from time import strftime

PY_MEMO_PATH = path.expanduser("~/")
PY_MEMO_FILE = ".pymemo.txt"

def get_memo(prompt):
    """ Einfache Funktion, um das Memo vom User eingeben zu lassen
        kann auch mittels Tk oder einer anderen GUI erfolgen. Dazu braucht
        nur diese eine Funktion geändert werden
    """
    return raw_input(prompt)

def main():
    """ Hauptfunktion """
    zeit = strftime("%Y-%m-%d_%H:%M:%S") # Zeit als String formatiert
    memo = get_memo("Memo eingeben: ") # Memo eingeben lassen
    
    # Zeit und Memo zusammenfügen mit einem "Linefeed" am Ende
    message = "%s_%s\n" % (zeit, memo)
    
    # Pfad und Dateiname für Memodatei zusammenfügen
    path_to_memos = path.join(PY_MEMO_PATH,PY_MEMO_FILE)

    memo_datei = file(path_to_memos,"a") # Datei zum anfügen öffnen
    memo_datei.write(message) # Zeile in Datei schreiben
    memo_datei.close() # Datei schließen

if __name__ == "__main__":
    main()

Gruß

Dookie

Verfasst: Dienstag 24. Februar 2004, 17:01
von lasius
Wow, danke Dookie !!

..werd ich gleich mal nachbasteln.

be well - lasius

Verfasst: Dienstag 24. Februar 2004, 17:07
von Dookie
Noch eine Anmerkung,

Man könnte das Script auch kürzer machen mit 2 oder 3 Zeilen, ich hab es aber Absichtlich etwas ausführlicher gemacht, damit Du es dann einfacher erweitern und ändern kannst.


Dookie

P.S.: Ich bin auch Debian-User :)

Verfasst: Dienstag 24. Februar 2004, 17:23
von lasius
Hi, Dookie

Fuer Neulinge wie mich, ist das Ausfuehrliche sicher der eher nachvollziehbare Weg. Danke nochmals für die schnelle Hilfe.

lasius

Zu Deinem P.S. mein P.S.
..sehr angenehm :D