wake-up-neo.com

Wie verwende ich "/" (Directory Separator) unter Linux und Windows in Python?

Ich habe einen Code in python geschrieben, der/verwendet, um eine bestimmte Datei in einem Ordner zu erstellen. Wenn ich den Code in Windows verwenden möchte, funktioniert er nicht. Kann ich das? Verwenden Sie den Code in Windows und Linux.

In python Ich verwende diesen Code:

pathfile=os.path.dirname(templateFile)
rootTree.write(''+pathfile+'/output/log.txt')

Wenn ich meinen Code auf einem Windows-Computer verwende, funktioniert mein Code nicht.

Wie verwende ich "/" (Verzeichnisseparator) sowohl unter Linux als auch unter Windows?

153
hulk007

Verwenden Sie os.path.join(). Beispiel: os.path.join(pathfile,"output","log.txt").

In Ihrem Code wäre das: rootTree.write(os.path.join(pathfile,"output","log.txt"))

228
Serban Razvan

Verwenden:

import os
print os.sep

um zu sehen, wie das Trennzeichen auf einem aktuellen Betriebssystem aussieht.
In Ihrem Code können Sie Folgendes verwenden:

import os
path = os.path.join('folder_name', 'file_name')
90

Sie können os.sep verwenden:

>>> import os
>>> os.sep
'/'
53
Adem Öztaş

os.path.normpath(pathname) sollte auch erwähnt werden, da es / - Pfadtrennzeichen in \ - Trennzeichen unter Windows konvertiert. Es werden auch redundante Verweise auf höheren Ebenen ausgeblendet ... d. H. A/B Und A/foo/../B Und A/./B Werden alle zu A/B. Und wenn Sie Windows sind, werden diese alle A\B.

31
Jon Rosen

Einige nützliche Links, die Ihnen helfen werden:

14
Maroun

Wenn Sie das Glück haben, Python 3.4+) auszuführen, können Sie pathlib verwenden:

from pathlib import Path

path = Path(dir, subdir, filename)  # returns a path of the system's path flavour

oder äquivalent,

path = Path(dir) / subdir / filename
11
Eugene Yarmash

Mach ein import os und dann os.sep

9
JackPoint

Sie können "os.sep" verwenden.

 import os
 pathfile=os.path.dirname(templateFile)
 directory = str(pathfile)+os.sep+'output'+os.sep+'log.txt'
 rootTree.write(directory)
7
P113305A009D8M

Erstellen Sie Verzeichnis- und Dateinamen nicht selbst, sondern verwenden Sie die enthaltenen Bibliotheken von Python.

In diesem Fall ist der relevante os.path . Insbesondere Join, der einen neuen Pfadnamen aus einem Verzeichnis und einen Dateinamen oder ein Verzeichnis erstellt und aufteilt, der den Dateinamen aus einem vollständigen Pfad abruft.

Ihr Beispiel wäre

pathfile=os.path.dirname(templateFile)
p = os.path.join(pathfile, 'output')
p = os.path.join( p, 'log.txt')
rootTree.write(p)
4
Mark