2016-04-25 1 views
0

Ich legte ein Python-Skript zu meinem /usr/local/bin, um als Befehl in bash zu verwenden.Erhalten Sie meinen aktuellen Pfad mit einem Python-Skript als Befehl

Ich möchte mein bash Arbeitsverzeichnis verwenden, aber ich bekomme nur das aktuelle Verzeichnis, in dem das Skript ausgeführt wird.

Gibt es eine Möglichkeit, das aktuelle Verzeichnis als Befehl zu verwenden? Zum Beispiel mit convert2ogg (wie Python-Skript in/usr/local/bin)

$ cd ~/Music 
$ convert2ogg *.mp3 
+0

das sollte der Standard sein - dh ein Python-Programm, wie jedes andere Programm, wird auf Dateien als globbed in der Befehlszeile von der Shell handeln, es ignoriert sowohl Dateien in der Befehlszeile UND ändert entweder das Verzeichnis selbst oder öffnet ein spezifisches Verzeichnis, um die Dateiliste zu lesen .... oder, wie es Ihr Skript tut, wird der Verzeichnisname von ARGV [0] allen Dateien vorangestellt, bevor sie geöffnet werden. Dies ist eine Frage mit einer Antwort "Tu das nicht, dann". – cas

+1

Mögliches Duplikat von [Aktuelles Verzeichnis und Dateiverzeichnis suchen] (http://stackoverflow.com/questions/5137497/find-current-directory-and-files-verzeichnis) – miradulo

Antwort

2
import os,sys 

print("CWD: "+os.getcwd()) 
print("Script: "+sys.argv[0]) 
print(".EXE: "+os.path.dirname(sys.executable)) 
print("Script dir: "+ os.path.realpath(os.path.dirname(sys.argv[0]))) 
pathname, scriptname = os.path.split(sys.argv[0]) 
print("Relative script dir: "+pathname) 
print("Script dir: "+ os.path.abspath(pathname)) 

Dieser Code war für mich ganz klar. os.path war nicht die Lösung für alle meine Probleme;) Ich suche nach einer Antwort, und scheint jemand fragen Sie vorher. Die erste Zeile mit os.getcwd() löste mein Problem.

Verwandte Themen