Maison >développement back-end >Tutoriel Python >Comment trouver de manière fiable le répertoire d'un script Python pour l'ouverture de fichiers ?

Comment trouver de manière fiable le répertoire d'un script Python pour l'ouverture de fichiers ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-29 00:44:12732parcourir

How to Reliably Find a Python Script's Directory for File Opening?

Trouver le répertoire du script pour une ouverture fiable des fichiers

Lorsque les scripts Python sont appelés à partir de différents environnements, ils peuvent ne pas toujours utiliser le même répertoire de travail. Cela peut entraîner des problèmes lorsque vous essayez d'ouvrir des fichiers situés dans le même répertoire que le script.

Pour garantir une ouverture fiable des fichiers, il est crucial de déterminer avec précision le répertoire réel du script. Diverses approches ont été utilisées, mais certaines méthodes peuvent avoir des limites :

  • os.getcwd() et os.path.abspath('') : celles-ci renvoient le répertoire de travail actuel , pas nécessairement le répertoire du script.
  • os.path.dirname(sys.argv[0]) et os.path.dirname(__file__) : Ceux-ci fournissent le chemin utilisé pour appeler le script, qui peut être relatif ou manquant si le script se trouve dans le répertoire courant. file est également indisponible dans certains environnements.
  • sys.path[0] et os.path.abspath(os.path.dirname(sys.argv[0]))  : Ceux-ci semblent renvoyer le répertoire du script, mais leur fiabilité dans différents scénarios n'est pas entièrement garanti.

Cependant, une solution plus fiable qui peut également prendre en compte les importations de modules est :

__location__ = os.path.realpath(os.path.join(os.getcwd(), os.path.dirname(__file__)))

Cette méthode ajoute au préalable le répertoire de travail actuel mais le supprime si le chemin du script est absolu. Il résout également les liens symboliques pour plus de précision.

Pour ouvrir des fichiers à l'aide de cette méthode :

f = open(os.path.join(__location__, 'file.ext'))

En utilisant __location__, vous pouvez ouvrir des fichiers de manière fiable à partir du répertoire du script, qu'il soit appelé directement ou importé. en modules. Cette approche assure la cohérence entre différents environnements et permet d'éviter les problèmes d'ouverture de fichiers.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn