Seite 1 von 1

Kleines Problem mit "glob.glob"

Verfasst: Freitag 4. Juli 2003, 10:45
von HarryH
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

Re: Kleines Problem mit "glob.glob"

Verfasst: Freitag 4. Juli 2003, 12:07
von Voges
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.

re:

Verfasst: Freitag 4. Juli 2003, 13:39
von HarryH
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.

Re: re:

Verfasst: Freitag 4. Juli 2003, 14:01
von Voges
HarryH hat geschrieben:Ich möchte eigentlich bewirken das aus z.B. [10-12] nacheinander 10,11,12 eingesetzt wird.
1[0-2]

Jan