2017-08-29 1 views
0

Ich habe ein Python-Skript, das eine PDF-Datei erstellt und sie in einem Unterordner des Ordners speichert, in dem das Skript gespeichert ist. Ich habe die folgenden Vorgänge aus, um die Datei in den Unterordner speichert:Angeben eines Teilpfads für os.path.join

outfilename = "Test" + ".pdf" #in real code there is a var that holds the name of the file 
outfiledir = 'C:/Users/JohnDoe/Desktop/dev/PARENTFOLDER/SUBFOLDER/' #parent folder is where the script is - subfolder is where the PDFs get saved to 
outfilepath = os.path.join(outfiledir, outfilename) 

Gibt es eine Weise, die ich die PDF-Dateien in den Unterordner speichern kann, ohne den vollständigen Pfad angeben zu müssen? Nehmen wir an, ich wollte, dass Sie dieses Skript zu einer exe machen, die mehrere Computer verwenden können. Wie würde ich den Pfad anzeigen, so dass die PDFs nur im Subfloor gespeichert werden?

Danke!

+0

Ich würde in der Regel haben das Skript ein Argument (entweder über die Befehlszeile oder in einer Konfigurationsdatei) in das Ausgabeverzeichnis zu übergeben. Etwas wie: 'python -o/path/to/outdir' https://docs.python.org/3/library/argparse.html –

Antwort

4

Versuchen Sie es:

import os 
dir_name = os.path.dirname(os.path.abspath(__file__)) + '/subdir' 
path = os.path.join(dir_name, 'filename') 
+0

schön, wie ein Charme! – GreenSaber

+0

Stört es Sie zu erklären, was der 'os.path.abspath (__ Datei __)' Teil tut, bitte? – GreenSaber

+0

Sicher, '__file__' ist ein Modulattribut, das den Pfad zu diesem Modul gespeichert hat. – AndMar

Verwandte Themen