Je travaille en python et j'ai besoin de convertir ceci:
C:\dossierA\dossierB vers C:/dossierA/dossierB
J'ai trois approches:
dir = s.replace('\\','/')
dir = os.path.normpath(s)
dir = os.path.normcase(s)
Dans chaque scénario, la sortie a été
C: folderAfolderB
Je ne suis pas sûr de ce que je fais mal, des suggestions?
Votre problème spécifique est l’ordre et l’échappement de vos arguments replace
, devrait être
s.replace('\\', '/')
Ensuite il y a:
posixpath.join(*s.split('\\'))
Ce qui sur une plate-forme * nix équivaut à:
os.path.join(*s.split('\\'))
Mais ne vous fiez pas à cela sous Windows, car il préférera le séparateur spécifique à la plate-forme. Également:
Notez que sous Windows, il existe un répertoire en cours pour chaque fichier drive, os.path.join ("c:", "foo") représente un chemin relatif au fichier répertoire en cours sur le lecteur C: (c: toto), pas c:\toto.
J'ai récemment trouvé cela et j'ai pensé qu'il valait la peine de le partager:
import os
path = "C:\\temp\myFolder\example\\"
newPath = path.replace(os.sep, '/')
print newPath
Output:<< C:/temp/myFolder/example/ >>
Essayer
path = '/'.join(path.split('\\'))
Que diriez-vous :
import ntpath
import posixpath
.
.
.
dir = posixpath.join(*ntpath.split(s))
.
.
Les noms de chemin sont formatés différemment dans Windows. la solution est simple, supposons que vous ayez une chaîne de chemin comme ceci:
data_file = "/Users/username/Downloads/PMLSdata/series.csv"
vous devez simplement le changer en ceci: (en ajoutant r devant le chemin)
data_file = r"/Users/username/Downloads/PMLSdata/series.csv"
Le modificateur avant la chaîne indique à Python qu'il s'agit d'une chaîne brute. Dans les chaînes brutes, la barre oblique inverse est interprétée littéralement et non comme un caractère d'échappement.
Pour définir la variable du chemin, vous devez ajouter r
au début, puis ajouter l'instruction de remplacement .replace('\\', '/')
à la fin.
par exemple:
In>> path2 = r'C:\Users\User\Documents\Project\Em2Lph\'.replace('\\', '/')
In>> path2
Out>> 'C:/Users/User/Documents/Project/Em2Lph/'
Cette solution ne nécessite aucune bibliothèque supplémentaire