Kleines Problem mit "glob.glob"

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
HarryH
User
Beiträge: 266
Registriert: Freitag 23. Mai 2003, 09:08
Wohnort: Deutschland

Freitag 4. Juli 2003, 10:45

Hallo,

Ich habe ein Problem mit glob.glob.

Code: Alles auswählen

NcFiles=glob.glob("*[5-9]1.nc")
Funktioniert!

Code: Alles auswählen

NcFiles=glob.glob("*[5-10]1.nc")
Funktioniert nicht!

Code: Alles auswählen

NcFiles=glob.glob("*[10-11]1.nc")
Funktioniert wieder!

Warum ist das so?
Kann ich das vielleicht irgendwie anders machen, so daß es geht?
Villeicht mit einer anderen Funktion?

Um Hilfe wäre ich dankbar!
Harry
Voges
User
Beiträge: 564
Registriert: Dienstag 6. August 2002, 14:52
Wohnort: Region Hannover

Freitag 4. Juli 2003, 12:07

Hallo!
HarryH hat geschrieben:

Code: Alles auswählen

NcFiles=glob.glob("*[10-11]1.nc")
Funktioniert wieder!
Sicher?

In den eckigen Klammern stehen nur Zeichenmengen, keine Zeichenketten.

[0-9] steht für die Zeichen '0' und '9' plus alle Zeichen die in der ASCII-Tabelle dazwischen sind.

[5-10] steht für Zeichen von '5' bis '1' und zusätzlich die '0'. Es gibt aber in der ASCII-Tabelle keine Abfolge '5'[,...],'1', zumindest nicht aufsteigend. Also dürfte nur die 0 erkannt werden (Vermutung).

[10-11] steht für das Zeichen '1' plus das Zeichenintervall von '0' bis '1' plus nochmal das Zeichen '1', ist also dasselbe wie [0-1].

Alles Vermutungen, da ich glob() nicht kenne und einfach davon ausgehe, dass die gleichen Regeln gelten, wie bei RegExps.
HarryH hat geschrieben:Kann ich das vielleicht irgendwie anders machen, so daß es geht?
Hängt davon ab, was Du tatsächlich erkennen willst.

Jan


Nachtrag:
Meine Vermutung zu [5-10] war falsch. Es gibt eine Exception und die offenbart, dass glob() intern selbst das sre-Modul verwendet.
HarryH
User
Beiträge: 266
Registriert: Freitag 23. Mai 2003, 09:08
Wohnort: Deutschland

Freitag 4. Juli 2003, 13:39

Du hattest recht!
[10-11] entspricht [0-1]

Ich möchte eigentlich bewirken das aus z.B. [10-12] nacheinander 10,11,12 eingesetzt wird.

Die Eingabe erfolgt über Tastatur in einem Dialogfeld.
Voges
User
Beiträge: 564
Registriert: Dienstag 6. August 2002, 14:52
Wohnort: Region Hannover

Freitag 4. Juli 2003, 14:01

HarryH hat geschrieben:Ich möchte eigentlich bewirken das aus z.B. [10-12] nacheinander 10,11,12 eingesetzt wird.
1[0-2]

Jan
Antworten