Pour mon projet, je dois lire certains fichiers. Mon collègue et moi avons un Mac, un Windows et parce que nous ne voulons pas toujours changer les noms de fichiers entiers, nous voulons insérer des chemins relatifs qui ne fonctionnent pas.Chemin relatif avec Windows et Python
Le chemin relatif que nous utilisons:
rel_path = "data/output/db_snapshot.log"
Alors j'importé os
et je voulais faire
path_db = os.path.abspath(rel_path)
Mais pour la sortie que je reçois une erreur:
FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\mossnef\\PycharmProjects\\model_py_dms_bubble_system\\sim\\analysis\\data\\output\\db_snapshot.log'
Si je pensais copier et coller tout le chemin dans mon chemin variable il n'y a pas de problème du tout et je peux le lire:
path_db = r"C:\Users\mossnef\PycharmProjects\model_py_dms_bubble_system\data\output\db_snapshot.log"
je l'ai déjà découvert que pour Windows le r
i ajouté est nécessaire pour une raison quelconque. Existe-t-il un moyen d'utiliser le chemin relatif pour le faire fonctionner pour Windows et Mac?
On dirait que vous avez votre fichier python dans un sous-répertoire. – Chris
Le 'r' que vous ajoutez au début signifie du texte brut, donc les antislashs traités comme une partie du chemin au lieu de char d'échappement. Il est requis sur Win, car le chemin de la victoire inclut \. Linux ne le fait pas. – Vinny
Copie possible de [Chemins de fichier indépendants de la plate-forme?] (Https://stackoverflow.com/questions/6036129/platform-independent-file-paths) – davedwards