2010-09-12 3 views
9

Nehmen wir an, ich habe ein Python-Skript a.py in /A/B/a.py und es befindet sich in der Umgebungsvariablen PATH. Das aktuelle Arbeitsverzeichnis ist/X/Y/und das Verzeichnis, in dem ich das /A/B/a.py anrufe.Wie kann ich das Verzeichnis kennen, in dem das Python-Skript aufgerufen wird?

  • In a.py, wie erkennt man/X/Y /? Ich meine, wie in welchem ​​Verzeichnis der Python-Aufruf gemacht wird?
+0

Das Verzeichnis, in dem der Python-Aufruf erfolgt automatisch das Arbeitsverzeichnis. – leoluk

Antwort

15

Sie können das aktuelle Arbeitsverzeichnis mit bekommen:

os.getcwd() 
+4

Sie sollten 'getcwdu()' aus Gründen der Portabilität verwenden. – Philipp

+1

Die Funktion ['getcwdu'] (https://docs.python.org/2/library/os.html#os.getcwdu) gibt eine Unicode-Zeichenfolge in Python 2 zurück. [' Getcwd'] (https: // docs .python.org/3/library/os.html # os.getcwd) gibt in Python 3 eine Unicode-Zeichenkette zurück. ['getcwdb'] (https://docs.python.org/3/library/os.html#os.getcwdb) gibt eine Bytefolge in Python 3 zurück. In Python 3 gibt es kein' getcwdu'. –

4
>> os.getcwd() 
/X/Y 
>> os.path.dirname(os.path.realpath(__file__)) # cannot be called interactively 
/A/B 
>> sys.path[0] 
/A/B 
>> os.path.abspath(sys.argv[0]) 
/A/B/a.py 
+0

Das gibt Ihnen die Verzeichnis '/ A/B', der Ort des' a.py'. –

+0

Das ist nicht, was er meinte, siehe seine Frage von gestern (http://stackoverflow.com/questions/3691921/how-to-know-the-path-the-script-the-python-run). – AndiDog

+0

@Radomir - Ich dachte, das Verzeichnis, in dem sich die .py-Datei befindet, ist das, was das OP wollte. Ihr Kommentar hat mich dazu gebracht, die Frage des OP erneut zu lesen und zu sehen, dass das nicht der Fall ist. –

Verwandte Themen