Kommentare aus einem String entfernen.

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.
Antworten
donchris
User
Beiträge: 13
Registriert: Freitag 23. Januar 2009, 13:53

Freitag 23. Januar 2009, 13:56

Wie kann man am einfachsten Prüfen, ob ein String als erstes Zeichen ein "#"- Zeichen hat ?!

mfg
donchris
rayo
User
Beiträge: 773
Registriert: Mittwoch 5. November 2003, 18:06
Wohnort: Schweiz
Kontaktdaten:

Freitag 23. Januar 2009, 14:00

Code: Alles auswählen

zeile[0] == '#'
DasIch
User
Beiträge: 2435
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Freitag 23. Januar 2009, 14:00

RTFM

Code: Alles auswählen

'#comment'.startswith('#')
donchris
User
Beiträge: 13
Registriert: Freitag 23. Januar 2009, 13:53

Freitag 23. Januar 2009, 14:02

Das funktioniert leider nicht. Ich habe es so auch schon einmal probiert.

if line[0] == '#'
^
SyntaxError: invalid syntax

Und der 2. Vorschlag funktioniert auch nicht wirklich:

Code: Alles auswählen

fobj = open("C:/httpd.conf","r")
settings = {}
for line in fobj:
    if line.startswith('#'):
        continue
    zuordnung = line.split(" ") 
    settings[zuordnung[0]] = zuordnung[1]
fobj.close()

EDIT: funktioniert ! Danke derdon !
Zuletzt geändert von donchris am Freitag 23. Januar 2009, 14:06, insgesamt 3-mal geändert.
derdon
User
Beiträge: 1316
Registriert: Freitag 24. Oktober 2008, 14:32

Freitag 23. Januar 2009, 14:03

Aus timeit_curses.py:

Code: Alles auswählen

In [20]: from __future__ import with_statement

In [21]: with open('timeit_curses.py') as f:
    for line in f:
        if line.lstrip().startswith('#'):
            print line,
   ....:             
   ....:             
#!/usr/bin/env python
    # initializing curses
    # make the cursor invisible
    # a counter to track the number of pressing <SPACE>
        # wait for a keypress
        # if <SPACE> is pressed...
            # print the start time if <SPACE> was pressed the 1st time
            # show end time and difference
                # format the output
            # delete the calculated data and start again
                # delete start time
                # delete end time
                # delete difference time
                # reset the counter and restart
        # quit the app if `q` is pressed
Zuletzt geändert von derdon am Freitag 23. Januar 2009, 14:05, insgesamt 1-mal geändert.
Benutzeravatar
helduel
User
Beiträge: 300
Registriert: Montag 23. Juli 2007, 14:05
Wohnort: Laupheim

Freitag 23. Januar 2009, 14:04

Code: Alles auswählen

line = "# test"
if line[0] == '#':
    print "Kommentar"
Das geht. Wenn es bei dir trotzdem nicht geht, dann liegt der Fehler ganz wo anders. Am besten du zeigst mal deinen Code.
Benutzeravatar
helduel
User
Beiträge: 300
Registriert: Montag 23. Juli 2007, 14:05
Wohnort: Laupheim

Freitag 23. Januar 2009, 14:06

donchris hat geschrieben:Und der 2. Vorschlag funktioniert auch nicht wirklich:
Was funktioniert denn nicht?
Snoda
User
Beiträge: 32
Registriert: Mittwoch 1. Februar 2006, 14:34

Freitag 23. Januar 2009, 14:08

donchris hat geschrieben:Das funktioniert leider nicht. Ich habe es so auch schon einmal probiert.

if line[0] == '#'
^
SyntaxError: invalid syntax
Der SyntaxError resultiert aus dem fehlenden Doppelpunkt. Der Bedingung ist korrekt...
Hello world!
BlackJack

Freitag 23. Januar 2009, 22:30

Das ist trotzdem eine Lösung die nicht 100% geht, wenn man eine leere Zeichenkette bekommt, gibt's einen `IndexError`. `startswith()` kommt damit klar.
Antworten