2016-04-25 11 views
0

私は/usr/local/binにpythonスクリプトを置き、bashでコマンドとして使用します。コマンドとしてPythonスクリプトを使用して現在のパスを取得します。

私はbashの作業ディレクトリを使いたいのですが、スクリプトが実行されているカレントディレクトリだけを取得します。

現在のディレクトリをコマンドとして使用する方法はありますか? など。 convert2oggで

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

他のプログラムと同様に、Pythonプログラムは、コマンドラインにリストされているファイルを無視したり、ディレクトリ自体を変更したり、ファイルを開くことができない限り、シェルがコマンドラインでglobbedとして動作します。ファイルリストを読み込むための特定のディレクトリを指定するか、またはあなたのスクリプトがそうするように、それらを開く前に任意のファイルにARGV [0]のdirnameを付加します。これは「それをしないでください」と答えた質問です。 – cas

+1

[現在のディレクトリとファイルのディレクトリを検索](http://stackoverflow.com/questions/5137497/find-current-directory-and-files-directory)の可能な複製 – miradulo

答えて

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)) 

(/ usr/local/binにPythonスクリプトのように)このコードは、私にとって非常に明確でした。 os.pathは私のすべての問題の解決策ではありませんでした;)私は答えを探しています。 os.getcwd()の最初の行は私の問題を解決しました。

関連する問題