glob Funktion auf Windows und Linux

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.
pythonNoob
User
Beiträge: 6
Registriert: Donnerstag 8. Januar 2009, 14:35

glob Funktion auf Windows und Linux

Beitragvon pythonNoob » Donnerstag 8. Januar 2009, 14:43

Hallo lieber Mitglieder!
Ich habe folgendes Problem:
Ich möchte eine Textdatei erstellen in der Pfadnamen von Pythondateien aufgelistet werden, die sich in einem lokalen Verzeichnis befinden.

Mit Hilfe der glob-funktion:

Code: Alles auswählen

glob("lib/test/*.py")

kriege ich eine Liste mit den unterschiedlichen Python dateien. Doch da ich unter Windows arbeite, erhalte ich eine Text datei, in der folgender Inhalt steht : z.B.

lib/test\\bespielPythonDatei.py
...

Da ich aber die txt Datei später auf einer Linux plattform benötige, will ich dass die Datei so aussieht:
lib/test/bespielPythonDatei.py

Weiss jemand wie ich das hinbekomme??
[/code]
Benutzeravatar
cofi
Moderator
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Beitragvon cofi » Donnerstag 8. Januar 2009, 15:01

Du ersetzt `\\' durch `/' ?

Code: Alles auswählen

In [6]: "lib/test\\bespielPythonDatei.py".replace("\\", "/")
Out[6]: 'lib/test/bespielPythonDatei.py'


Edit: Bzw auf der Liste:

Code: Alles auswählen

for index, path in enumerate(files):
    files[index] = path.replace("\\", "/")
Benutzeravatar
Hyperion
Moderator
Beiträge: 7471
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Beitragvon Hyperion » Donnerstag 8. Januar 2009, 15:09

Kann man das evtl. mit os.path.join() gerade biegen?
pythonNoob
User
Beiträge: 6
Registriert: Donnerstag 8. Januar 2009, 14:35

Beitragvon pythonNoob » Donnerstag 8. Januar 2009, 15:19

Danke! Habe jetzt die replacement Variante genommen und funktioniert!
Benutzeravatar
cofi
Moderator
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Beitragvon cofi » Donnerstag 8. Januar 2009, 16:23

Hyperion hat geschrieben:Kann man das evtl. mit os.path.join() gerade biegen?


Hmm das müsste man dann allerdings erst splitten, damit man das durch die geeigneten Pfadtrenner ersetzen kann, das Problem dabei ist aber, dass der Aufruf

Code: Alles auswählen

In [2]: p = "lib/test\\bespielPythonDatei.py"
In [3]: os.path.split(p)
Out[3]: ('lib', 'test\\bespielPythonDatei.py')

Eben nicht entsprechendes unter Linux leistet. Unter Windows könnte man das aber evtl richtig hinbiegen per

Code: Alles auswählen

file_path = os.path.split(file_path)
file_path = "/".join(file_path)

os.path.join wird dagegen wieder - unter Windows - `\\' als Trennzeichen nutzen und is deswegen nicht zu gebrauchen.
lunar

Beitragvon lunar » Donnerstag 8. Januar 2009, 16:56

Wenn es darum geht, Windows Pfade in Unix-Pfade zu verwandeln, wäre dieses Snippet meine Lösung.

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot]