Maison  >  Article  >  développement back-end  >  méthode python pour obtenir le chemin du fichier d'exécution du programme

méthode python pour obtenir le chemin du fichier d'exécution du programme

不言
不言original
2018-04-27 10:16:016901parcourir

Ce qui suit est une méthode Python pour obtenir le chemin du fichier d'exécution du programme (recommandé). Elle a une bonne valeur de référence et j'espère qu'elle sera utile à tout le monde. Jetons un coup d'œil ensemble

1. Récupérez la méthode de script principale actuellement exécutée : sys.argv[0] et _ file _

(1)sys.argv

Une liste de paramètres de commande transmis au script Python. sys.argv[0] est le nom du script. Généralement, le chemin relatif est obtenu. Utilisez os.path.abspath(sys.argv[0]) pour obtenir le chemin absolu du fichier exécutable :

dirname, filename = os.path.split(os.path.abspath(sys.argv[0])) 
os.path.realpath(sys.argv[0])

si l'exécution de sys.argv sur la ligne de commande renvoie le chemin de l'interpréteur : ['/Library/Frameworks/Python.framework/Versions/3.6/bin/ipython3']

( 2)_ _ file_ _

Obtenir le chemin où se trouve le module d'exécution actuel, qui est généralement un chemin relatif. Utilisez os.path.abspath(_ _ file_ _) pour obtenir. le chemin absolu du fichier d'exécution :

dirname, filename = os.path.split(os.path.abspath( _ _ file_ _)) 
os.path.realpath(_ _ file_ _)

Remarque : Sous la console Python, l'utilisation directe de print _ _ file _ entraînera le nom '_file _ ' n'est pas une erreur définie, car il n'y a pas de définition du _ fichier _ _. Lorsqu'il est exécuté sous un script, il n'y a naturellement aucune définition du _ fichier _ _.

(3) La différence entre sys.argv[0] et _ _ file _ _ : Lorsque est dans le fichier exécutable principal, il n'y a aucune différence entre les deux, mais si c'est différent sous des fichiers différents, comme les deux fichiers a.py et b.py

Les résultats de l'exécution de a.py sont les suivants :

Comme le montrent les résultats de la figure ci-dessus : s'ils sont tous les deux un .py, les résultats sont les mêmes, mais à partir du Le sys.argv[0] exécuté lors de l'importation de b fait toujours référence au fichier principal en cours d'exécution : a.py, mais _ _ file_ _ génère en fait b.py

2. sys.path

Une liste de chaînes de chemins de recherche de modules. Initialisé par la variable d'environnement PYTHONPATH. est une liste de répertoires, sys.path[0] est le répertoire où se trouve le script actuel qui appelle l'interpréteur Python, c'est-à-dire le répertoire parent du fichier d'exécution principal.

Exemple : Si exécuté dans le fichier a.py de /user/ybp/a.py : print(sys.path[0])==>/user/ybp,

L'exécution sur la ligne de commande renvoie une chaîne vide ;

3 Notez que os.path est une variable d'environnement système, qui doit être distinguée de ce qui précède. 0], os.path Quelques méthodes dans :

(1)os.path.split(path)

Divisez le nom du chemin en une paire de tête et de queue. Il n'y a jamais de barre oblique finale. Si le chemin d'entrée se termine par une barre oblique, une fin vide est obtenue.

Si le chemin d'entrée n'a pas de barre oblique, le champ d'en-tête sera vide. Si le chemin d’entrée est vide, la tête et la queue résultantes sont vides.

https://docs.python.org/2/library/os.path.html#os.path.split

(2)os.path. realpath(path)

Renvoie le chemin absolu d'un nom de fichier spécifique, qui peut être exécuté à partir de la ligne de commande.

https://docs.python.org/2/library/os.path.html#os.path.realpath

4.os.getcwd() Ce qui est renvoyé est le chemin de travail actuel et ne doit pas nécessairement être exécuté dans un script. Cette commande est équivalente à pwd, qui peut être exécutée dans la ligne de commande. Le chemin absolu est renvoyé ; 🎜>Recommandations connexes :


Méthode Python pour obtenir des données spécifiées à partir d'un texte CSV


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