Datensätze aus Textdatei lesen und bearbeiten

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.
NMR
User
Beiträge: 3
Registriert: Montag 27. August 2007, 14:40

Datensätze aus Textdatei lesen und bearbeiten

Beitragvon NMR » Dienstag 28. August 2007, 06:42

Hallo,
ich möchte mir zurzeit ein wenig Python beibringen und muss gestehen,dass ich noch nicht wirklich gut bin. Leider komme ich nicht so ganz weiter.
Ich würde gerne aus einer Textdatei Daten lesen können und weiter verarbeiten.
Aber nur so zb.
(Textdatei)
Objekt : 00001
Farbe : grün

Es sollte jetzt aber nur der "Variablen-Wert" aufgeführt sein.
Mein größtes Problem ist,dass ich keine Idee hab wie man das in "Edit-Felder" macht, weil ich es hinterher ja auch abspeichern möchte.

Würde mich sehr über n paar Ratschläge freuen und erwarte wirklich keine kompletten Quelltext etc. nur ein paar Tips die mir zur Lösung helfen.

Danke schon einmal!!
BlackJack

Beitragvon BlackJack » Dienstag 28. August 2007, 06:56

Die Frage ist ziemlich schwammig formuliert. Mir ist noch nicht so ganz klar was Du machen willst.

Also erst einmal ganz generell solltest Du das Python-Tutorial durcharbeiten um die grundlegenden Kontroll- und Datenstrukturen von Python kennen zu lernen.

Ansonsten: Zum öffnen von Dateien gibt's `open()`. Einlesen kann man zeilenweise einfach mit einer ``for``-Schleife über das Dateiobjekt. Zeichenketten haben eine Menge nützlicher Methoden unter anderem `split()` und `partition()` (letzteres ab Python 2.5) um eine Zeichenkette an bestimmten Zeichen aufzuteilen. Und für Schlüssel/Wert-Paare bieten sich Dictionaries zum speichern an.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5554
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Telfs (Tirol)
Kontaktdaten:

Re: Datensätze aus Textdatei lesen und bearbeiten

Beitragvon gerold » Dienstag 28. August 2007, 07:17

NMR hat geschrieben:Ich würde gerne aus einer Textdatei Daten lesen können und weiter verarbeiten.

Hallo NMR!

Willkommen im Python-Forum!

Wie BlackJack schon schrieb, solltest du zuerst eines der Python-Tutorials durchlesen um Python und dessen Datenstrukturen kennen zu lernen.

Und hier habe ich noch einen Link für dich:
http://www.python-forum.de/topic-6157.html

Probiere die Beispiele aus! Danach weißt du auch mit diesem Tipp etwas anzufangen: ``split()`` kennt mehrere Parameter. Mit einem davon kann man angeben, dass ein Text nur in zwei Teile gesplittet werden soll. Was bei Einstellungen in einer Textdatei sinn machen kann.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
NMR
User
Beiträge: 3
Registriert: Montag 27. August 2007, 14:40

Beitragvon NMR » Dienstag 28. August 2007, 07:20

Ah super. Danke die Befehle helfen mir schonmal!!!

Aber nu noch mal zum Verständnis:

Textdatei
zb.:
<Foto="001" , Bestellnummer:"2456" , Name:"Otto">
<Foto="002" , Bestellnummer:"2436" , Name:"Fritz">

Ausgeben werden soll es dann in einem HTML Dokument.
Dort steht dann

I Foto I Bestellnummer I Name I
001 I 2456 I Otto
___________________________
002 I 2436 I Frtiz
____________________________

Aber die ausgegebenen Felder sollen auch zum Bearbeiten sein. Also Edit-Felder.
Halt wie n kleines Datenbanksytem kann man sagen.
BlackJack

Beitragvon BlackJack » Dienstag 28. August 2007, 07:53

Das sieht verdächtig nach XML aus? Falls es wirklich XML ist, sollte man zum Einlesen auch ein XML-Modul verwenden, zum Beispiel `ElementTree`. Ansonsten ist das Format IMHO schon kompliziert genug um einen echten Parser, zum Beispiel `pyparsing` zu rechtfertigen.

Für die Ausgabe als HTML sollte man ein Template-Modul benutzen. `kid` mag ich für XML/HTML am liebsten, `genshi` scheint auch interessant zu sein.
NMR
User
Beiträge: 3
Registriert: Montag 27. August 2007, 14:40

Beitragvon NMR » Dienstag 28. August 2007, 08:04

Ja da hast du vollkommen Recht. Danke! Ich werd mal ein wenig versuchen damit etwas "rum zu spielen"
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5554
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Telfs (Tirol)
Kontaktdaten:

Beitragvon gerold » Dienstag 28. August 2007, 08:16

NMR hat geschrieben:Aber die ausgegebenen Felder sollen auch zum Bearbeiten sein. Also Edit-Felder. Halt wie n kleines Datenbanksytem kann man sagen.

Hallo NMR!

Lange hat es gebraucht, aber jetzt habe ich verstanden was du machen möchtest. Du möchtest also den Inhalt deiner Textdatei in einem HTML-Formular anzeigen (z.B. in einer Tabelle). Diese Daten sollen editierbar sein und auf Knopfdruck wieder in die Textdatei geschrieben werden. Richtig?

Also ehrlich, da steckt viel KnowHow dahinter, das du noch nicht hast. Eine HTML-Seite macht so etwas nicht einfach so. Du brauchst ein Serverprogramm im Hintergrund, das dir die Änderungen wieder in die Textdatei schreibt. Das ist auch kein Problem, so lange das nur lokal auf deinem Rechner passieren soll. Aber sobald du das auf einem Webserver machen willst, musst du dich an die Gegebenheiten des Webservers anpassen. Das Schreiben einer Textdatei auf einem Webserver braucht erweiterte Rechte, die natürlich auch wieder Sicherheitslücken entstehen lassen. Usw.

Und ob eine Textdatei für so etwas das Richtige ist? Ich weiß nicht. Auf Webservern arbeitet man gerne mit Datenbanken, da diese mit konkurierenden (gleichzeitigen) Zugriffen besser umgehen können.

Willst du nur mal lernen oder hast du ein Projekt geplant?

Wie auch immer... Den Link, den ich dir oben gezeigt habe, solltest du auf jeden Fall mal durcharbeiten und was die Entwicklung von dynamischen HTML-Seiten anbelangt, arbeite ich derzeit gerne mit CherryPy. Hier ist der Erfahrungsbericht, den ich beim Entdecken von CherryPy geschrieben habe: http://www.python-forum.de/topic-10807.html
Damit kannst du HTML-Seiten erstellen, HTML-Formulare generieren und Daten von HTML-Formularen auswerten und irgendwo rein schreiben. Dass du für so ein Vorhaben HTML können solltest, versteht sich von selbst: http://www.selfhtml.org/

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs

Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot]