5

既に解決済みの質問でしたら申し訳ありません。Python スクリプトの実行時または Python 内で現在のディレクトリを取得したいと考えています。以下は、現在のディレクトリを含むフル パスを返します。

os.getcwd()

現在のディレクトリまでのパスを取得することもできます。

os.path.dirname(os.getcwd())

を使用os.path.splitすると、上記と同じものに加えて現在のフォルダーが返されますが、最終的には必要なオブジェクトになります。

(thing_I_dont_want, thing_I_want) = os.path.split(os.getcwd())

不要なオブジェクトを作成せずに、現在のフォルダーだけを取得する方法はありますか? 別の方法として、変数の代わりに変数のthing_I_dont_want作成を妨げるもの (例: (*, thing_I_want)) はありますか?

ありがとう!

4

4 に答える 4

8

このような:

os.path.split(os.getcwd())[1]

タプルを返しますがos.path.split、アンパックする必要はありません。必要な項目だけを選択し、必要のない項目は無視できます。

于 2013-07-07T21:03:41.390 に答える
3

使用os.path.split:

>>> os.path.split(os.getcwd())
('/home/user', 'py')
>>> os.path.split(os.getcwd())[-1]
'py'

ヘルプos.path.split:

>>> print os.path.split.__doc__
Split a pathname.  Returns tuple "(head, tail)" where "tail" is
    everything after the final slash.  Either part may be empty.
于 2013-07-07T21:03:45.953 に答える
1

/これを試すこともできますが、何らかの理由でパス名が a で終わる場合は安全ではありません (指定されたすべてのソリューションと同様) 。

os.path.basename(os.getcwd())
于 2013-07-07T21:05:40.253 に答える
0

「これは私が望んでいないことだ」ということを示す標準的な pythonic の方法は、次のように _ と呼ぶことです。

_, thing_I_want = os.path.split(os.getcwd())

これは特別なことではないことに注意してください。オブジェクトは os.split() 内で作成され、まだ返されて _ という名前が付けられていますが、これにより、コードを読んでいる人には、その特定の要素を気にしないことが明らかになります。

ほとんどの IDE とコード バリデーターは、他の人への合図であるだけでなく、_ という変数が無視されるべきであることを理解しており、決して使用されていないことを警告するようなことはしません。

于 2013-07-07T21:54:25.383 に答える