2016-03-21 20 views
0

Ich möchte den relativen Pfad zum Ordner mit meinem Executive-Skript festlegen, das von jeder Maschine funktioniert, ohne den absoluten Pfad zur Datei fest zu codieren. Bisher habe ich folgendes:So legen Sie den relativen Pfad zum Executive-Skript fest

import os 
path_to_folder = os.path.realpath('.') 

Als ich mein Skript von PyCharm Aufruf print(path_to_folder) Rückkehr richtigen Pfad

C:\Users\Me\Desktop\Project\Script\

laufen Aber wenn ich versuche, es zu nennen von cmd wie python3.4 C:\Users\Me\Desktop\Project\Script\my_script.py bekomme ich nur

C:\Users\Me\

Was ist der zuverlässigere Weg, den relativen Pfad zu setzen?

Antwort

1

benutzte ich Pathlib

# get sibling file 
sib = Path(__file__).with_name(same_level_file) 

# get parent 
par = Path(__file__).parent 

# file in sibling parent 
sib2 = Path(__file__).parent.with_name(parent_folder).joinpath(file2)  
+0

Dank. Es scheint zu funktionieren! – Andersson

0

Sie auch dies nur ohne Pathlib tun können, verwenden, um die __file__ Variable, dass Python jedes Modul definiert.

Im Mutter Skript selbst:

from os.path import dirname, abspath 
path_to_folder = abspath(dirname(__file__)) 
print(path_to_folder) 

Oder allgemeiner, wenn Sie wollen einfach nur wissen, wo ein Modul befindet, können Sie einfach tun:

from os.path import dirname, abspath 
import mymodule 
path_to_folder = abspath(dirname(mymodule.__file__)) 
print(path_to_folder) 
Verwandte Themen