Strings zeichenweise vergleichen

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.
richard5579
User
Beiträge: 2
Registriert: Donnerstag 7. Dezember 2006, 22:32

Strings zeichenweise vergleichen

Beitragvon richard5579 » Sonntag 10. Dezember 2006, 21:29

Hallo wollte mich einmal vorstellen
Ich heisse richard und bin neu hier in der Community
Leider habe ich auch schon ein problem mit den strings denn ich würde gerne einen string einlesen und ihn zeichenweise vergleichen.Aber da alles in Python strings sind habe ich keine Ahnung wie ich sie ZEICHENWEISE vergleichen soll.Ich wollte nur einen kleinen Filter für Windows machen sodass ich beim einlesen von dateien nicht den doppelten \ schreiben muss.
Bitte schreibt mir bald zurück
lg
Richard
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Re: Strings zeichenweise vergleichen

Beitragvon Leonidas » Sonntag 10. Dezember 2006, 21:59

richard5579 hat geschrieben:Aber da alles in Python strings sind

Falsch, in Python sind alles Objekte.

richard5579 hat geschrieben:habe ich keine Ahnung wie ich sie ZEICHENWEISE vergleichen soll.

Die einzelnen Buchstaben eines Strings bekommst du so:

Code: Alles auswählen

for buchstabe in "Ich bin ein Satz.":
    print buchstabe


richard5579 hat geschrieben:Ich wollte nur einen kleinen Filter für Windows machen

Was ist denn ein kleiner Filter für Windows?
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
sunmountain
User
Beiträge: 89
Registriert: Montag 13. März 2006, 17:18

Wenn Du

Beitragvon sunmountain » Montag 11. Dezember 2006, 09:59

den Namen der Datei, die Du öffnen willst als Raw String schreibst, brauchst Du das auch nicht:

Code: Alles auswählen

fname = r'C:\TEMP\afile.txt'
f = open(fname,'r')
for line in f:
    print line


Der Schlüssel ist hier das 'r' vor dem String.
Das gibt es auch in Kombination mit Unicodestrings:

Code: Alles auswählen

aUnicodeString = ur'Beispiel'


Siehe auch: http://docs.python.org/ref/strings.html :
When an "r" or "R" prefix is present, a character following a backslash is included in the string without change, and all backslashes are left in the string. For example, the string literal r"\n" consists of two characters: a backslash and a lowercase "n". String quotes can be escaped with a backslash, but the backslash remains in the string; for example, r"\"" is a valid string literal consisting of two characters: a backslash and a double quote; r"\" is not a valid string literal (even a raw string cannot end in an odd number of backslashes). Specifically, a raw string cannot end in a single backslash (since the backslash would escape the following quote character). Note also that a single backslash followed by a newline is interpreted as those two characters as part of the string, not as a line continuation.

Der Raw String darf also nicht auf "\" enden,
das hier geht folglich in die Hose:

Code: Alles auswählen

import os.path
if os.path.isdir(r"C:\TEMP\"):
    print "Pfad existiert"


und muss so aussehen:

Code: Alles auswählen

import os.path
if os.path.isdir(r"C:\TEMP"):
    print "Pfad existiert"
Zuletzt geändert von sunmountain am Montag 11. Dezember 2006, 10:43, insgesamt 3-mal geändert.
Benutzeravatar
sunmountain
User
Beiträge: 89
Registriert: Montag 13. März 2006, 17:18

Re: Strings zeichenweise vergleichen

Beitragvon sunmountain » Montag 11. Dezember 2006, 10:14

richard5579 hat geschrieben:Aber da alles in Python strings sind


Das ist in Tcl so.

Wer ist online?

Mitglieder in diesem Forum: brainstir