Maison > développement back-end > Tutoriel Python > Comment ouvrir de manière fiable des fichiers à partir du répertoire de scripts actuel ?

Comment ouvrir de manière fiable des fichiers à partir du répertoire de scripts actuel ?

Patricia Arquette
Libérer: 2024-11-15 06:41:03
original
274 Les gens l'ont consulté

How to Reliably Open Files from the Current Script Directory?

Ouverture de fichiers à partir du répertoire de script actuel : une approche globale

Lors de l'ouverture de fichiers à partir du répertoire du script en cours d'exécution, il est crucial d'utiliser la technique appropriée pour éviter les erreurs. Au départ, utiliser open("Some file.txt", "r") peut sembler simple, mais cela peut entraîner des problèmes lorsque le script est lancé en double-cliquant sur Windows.

Pour résoudre ce problème, une solution courante L'approche consiste à utiliser os.path.join(sys.path[0], "Some file.txt") pour spécifier le chemin du fichier. Bien que cela fonctionne la plupart du temps, cela peut échouer dans certains scénarios.

Exploration des alternatives :

  • os.getcwd() et os. path.abspath('') : Ces fonctions fournissent le "répertoire de travail actuel", qui peut différer du script directory.
  • os.path.dirname(sys.argv[0]) et os.path.dirname(__file__) : Ils récupèrent le chemin utilisé pour invoquer le script, qui peut être relatif ou vide. De plus, __file__ n'est pas disponible dans IDLE ou PythonWin.
  • sys.path[0] et os.path.abspath(os.path.dirname(sys.argv[0])) : Ceux-ci semblent renvoyer le répertoire de script, mais leur équivalence est incertaine.

Considérant le Containing Module :

Le problème peut être affiné davantage jusqu'à ouvrir des fichiers dans le même répertoire que le module conteneur. Les techniques conventionnelles peuvent ne pas répondre de manière adéquate à ce besoin.

Solution fiable :

Une solution totalement fiable consiste à utiliser le code suivant :

__location__ = os.path.realpath(
    os.path.join(os.getcwd(), os.path.dirname(__file__)))
Copier après la connexion

Cette ligne garantit que le répertoire de script est obtenu avec précision, quelle que soit la méthode ou la plateforme de lancement. Pour ouvrir des fichiers dans ce répertoire, utilisez simplement :

f = open(os.path.join(__location__, 'bundled-resource.jpg'))
Copier après la connexion

Cette approche s'est avérée efficace pour regrouper des ressources avec des applications Django sous Windows et Linux.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal