0

1 つ上のディレクトリにあり、特定の単語を含むパスを見つけようとしています。たとえば、ここで見つけようとしているパスは /whatever/path/2343blah344 になります

        oldpath = '/whatever/path/itis'
        newpath = os.path.join(os.path.dirname(oldpath), '/*blah*')

newpath を印刷すると、/*blah としてのみ表示されるため、* が機能しなかったか、これが適切なアプローチ方法ではないことは確かです。

4

2 に答える 2

2

明確にするために、os.path.joinはテキスト文字列で機能します。実際には、それらを基盤となるオペレーティングシステムと洗練された方法で比較することはありません。これは、効率と、現在実行中のコンピューターに関連付けられていないパスを作成する場合の両方に役立ちます。

Burhan Khalidが示唆したように、グロブはあなたが実際に望んでいることを達成するための最良の方法です。何らかの理由でosライブラリを使用してすべてを実行したい場合は、os.walkを使用してすべての可能性を取得し、それらをフィルタリングするなどの方法を実行できます。

于 2012-10-17T16:24:25.293 に答える
2

あなたが1つの試合だけを期待していることに基づいて...

import glob
oldpath = '/whatever/path/itis'
newpath = glob.glob(os.path.join(os.dirname(oldpath), '*blah*/'))[0]
于 2012-10-17T16:24:56.357 に答える