228 votes

Comment utiliser "/" (séparateur de répertoire) sous Linux et Windows en Python ?

J'ai écrit un code en python qui utilise / pour faire un fichier particulier dans un dossier, si je veux utiliser le code dans Windows, il ne fonctionnera pas, y a-t-il un moyen par lequel je peux utiliser le code dans Windows et Linux.

En python, j'utilise ce code :

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

Lorsque j'utiliserai mon code dans une machine Windows, mon code ne fonctionnera pas.

Comment utiliser "/" (séparateur de répertoire) sous Linux et Windows ?

18voto

Maroun Maroun Points 31217

Quelques liens utiles qui vous aideront :

12voto

JackPoint Points 1283

Faites un import os et ensuite utiliser os.sep

9voto

P113305A009D8M Points 114

Vous pouvez utiliser " os.sep "

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

5voto

Mark Points 21191

Ne construisez pas vous-même les noms des répertoires et des fichiers, utilisez les bibliothèques incluses dans python.

Dans ce cas, l'élément pertinent est os.path . En particulier, join qui crée un nouveau nom de chemin à partir d'un répertoire et d'un nom de fichier ou de répertoire et split qui récupère le nom de fichier à partir d'un chemin complet.

Votre exemple serait le suivant

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

3voto

mr-possible Points 57

Si quelqu'un cherche quelque chose comme ça : :

Il/elle veut connaître le répertoire parent, puis aller dans les sous-dossiers et peut-être ensuite dans un fichier spécifique. Dans ce cas, j'utilise l'approche suivante.

  1. J'utilise python 3.9 pour l'instant. Dans cette version, nous avons donc os pour gérer ces tâches. Ainsi, pour obtenir le répertoire parent : :
parent_dir = os.path.pardir
  1. Une bonne pratique de codage consiste à ne pas coder en dur les séparateurs de chemins de fichiers (/ ou \). Au lieu de cela, utilisez le mécanisme dépendant du système d'exploitation fourni par l'option ci-dessus. os module. Il permet de réutiliser votre code à d'autres fins ou pour d'autres personnes. Cela se passe comme ceci (juste un exemple) : :

path = os.path.pardir + os.sep + 'utils' + os.sep + 'properties.ini'

print(f'The path to my global properties file is :: {path}')

Sortie : :

.. \utils\properties.ini

Vous pouvez certainement consulter la documentation complète ici : https://docs.python.org/3/library/os.html

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X