Maison >développement back-end >Tutoriel Python >Comment ouvrir de manière fiable des fichiers dans le même répertoire que votre script Python en cours d'exécution ?
Ouverture de fichiers dans le répertoire du script en cours d'exécution [Revisité]
En Python, ouverture de fichiers situés dans le même répertoire que le script en cours d'exécution peut être un défi, surtout si l’on considère la compatibilité multiplateforme. Une approche courante consiste à utiliser open("Some file.txt", "r"), qui fonctionne lorsque le script est exécuté à partir de la ligne de commande. Cependant, lorsque le script est lancé via un double-clic sous Windows, il peut tenter d'ouvrir le fichier à partir d'un répertoire incorrect.
Pour résoudre ce problème, les développeurs ont recherché des alternatives fiables. os.path.join(sys.path[0], "Some file.txt") est apparu comme une solution de contournement courante, mais des inquiétudes subsistent quant à ses limites potentielles.
Détermination du répertoire du script
L'identification du répertoire du script est cruciale pour ouvrir les fichiers qui s'y trouvent. Parmi les différentes méthodes disponibles, os.getcwd() et os.path.abspath('') récupèrent le répertoire de travail actuel, qui n'est pas nécessairement le répertoire du script. De même, os.path.dirname(sys.argv[0]) et os.path.dirname(__file__) fournissent le chemin d'exécution du script, qui peut être relatif ou incomplet lorsque le script est exécuté dans certains environnements.
Solution recommandée
Pour garantir une ouverture fiable des fichiers dans le répertoire du script, l'approche suivante est recommandé :
__location__ = os.path.realpath( os.path.join(os.getcwd(), os.path.dirname(__file__)))
Cette ligne combine le répertoire de travail actuel et le chemin du script, garantissant que les chemins absolus ne sont pas affectés lors de la résolution des liens symboliques.
Pour ouvrir des fichiers à l'aide de cette méthode :
f = open(os.path.join(__location__, 'bundled-resource.jpg'))
Cette approche fournit une solution robuste pour ouvrir des fichiers dans le même répertoire que le script en cours d'exécution, quel que soit l'environnement ou la plate-forme d'exécution.
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!