text aus variable herausfiltern

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.
mr nobody
User
Beiträge: 7
Registriert: Dienstag 18. Juli 2006, 00:54

text aus variable herausfiltern

Beitragvon mr nobody » Dienstag 18. Juli 2006, 01:30

hallo!

ich hab ein kleines problem:

ich hab eine textdatei, wo ich einen text und den nachfolgenden text als variable deklarieren möchte. der text sieht ungefähr so aus: USERNAME="xyz0123" .

bis jetzt sieht mein script so aus:

Code: Alles auswählen

#!/usr/bin/python

f = open('test.txt', 'r')
test = f.read()
print test


kann mir bitte jemand helfen, bin noch neu in sachen python....

danke im voraus
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5554
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Telfs (Tirol)
Kontaktdaten:

Re: text aus variable herausfiltern

Beitragvon gerold » Dienstag 18. Juli 2006, 08:37

mr nobody hat geschrieben:kann mir bitte jemand helfen

Hi mr nobody!

Code: Alles auswählen

#!/usr/bin/env python
# -*- coding: iso-8859-1 -*-
 
f = file('test.txt', 'rU')

my_values = {}

for line in f:
    if line:
        if line.find("=") > 0:
            key, value = line.split("=")
            key = key.strip()
            value = value.strip('"')
            my_values[key] = value
f.close()

print my_values

Du kannst den Namen und den Wert jeder Zeile mit dem Befehl "split()" voneinander trennen. Mit "strip()" kannst du Leerzeichen (oder andere Zeichen) vom Anfang und vom Ende einer Zeichenfolge löschen.
Das Ergebnis ist ein Variablename (key) und ein Wert (value). Diese legst du am Besten in ein Dictionary (my_values) ab.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Re: text aus variable herausfiltern

Beitragvon Leonidas » Dienstag 18. Juli 2006, 18:47

mr nobody hat geschrieben:ich hab eine textdatei, wo ich einen text und den nachfolgenden text als variable deklarieren möchte. der text sieht ungefähr so aus: USERNAME="xyz0123" .

Das ist einfach, du benennst deine Datei in config.py um, und importierst sie mit import config. Zugreifen tust du dann mit config.USERNAME. Ist doch nett, das deine Configdatei valides Python ist :)
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
Masaru
User
Beiträge: 425
Registriert: Mittwoch 4. August 2004, 22:17

Beitragvon Masaru » Dienstag 18. Juli 2006, 21:46

Hmm ... du könntest auch mit etwas arbeiten, was "Config File Format (*RFC)", bzw. auch bekannt als Ini File Format.

Python stellt mit Configuration File Parser eine Implementierung bereit, die es ermöglich einfach und bequem auf eine solche Config-Files zuzugreifen.

Bsp für eine Ini-File (z.B.users.ini)

Code: Alles auswählen

[jack]
nachname=smith
alter=33
geschlecht=m
position=demolition

[jane]
nachname=smith
alter=29
geschlecht=w
position=spionage


Die Syntax ist recht einfach:
- jede Benutzer bekommt eine Sektion (eckige Klammer, deren Inhalt der Name an sich ist)
- unterhalb einer Sektion können Attribute mit Werten definiert werden (separiert durch das "=" Zeichen)

Man könnte mit Python wie folgt auf diese Datei zugreifen:

Code: Alles auswählen

>>> import ConfigParser
>>> parser = ConfigParser.RawConfigParser()
>>> parser.read(r'D:\work\Python\users.ini')
>>> parser.sections() # gibt die Sektionen aus
['jane', 'jack']
>>> parser.items('jack') # gibt die Attribute/Items für eine Sektion aus, die man angiebt
[('geschlecht', 'm'), ('nachname', 'smith'), ('alter', '33'), ('position', 'demolition')]

Damit lässt sich so einiges machen ;).

Gruß,
>>Masaru<<
mr nobody
User
Beiträge: 7
Registriert: Dienstag 18. Juli 2006, 00:54

Beitragvon mr nobody » Freitag 21. Juli 2006, 18:48

DANKE für die vielen antworten....

ich habs jetzt geschafft.... :lol:

mfg
mr nobody

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder