python:特定のディレクトリのglobを使用する[閉じる]

python:特定のディレクトリのglobを使用する[閉じる]

glob関数を使ってロードしています。

#make a list from pdb filles located in the same directory as this python script
pdb_list = glob.glob('*.pdb')


# do something on each pdb file
for pdb in pdb_list:
  some_variable = some_function(pdb)

Pythonスクリプトと同じ場所にある特定のサブディレクトリからこれらのすべてのpdb母集団を直接ロードしてから(一部の出力を生成するために)初期ディレクトリに戻るなど、globへの特定のパスをどのように使用できますか?

The one way that I found is to use
# change current directory to ./pdb
os.chdir("pdb")

ただし、この場合、結果の保存を含むすべての操作は、すべての初期PDBフィルを含むディレクトリで発生します。 globはpdbフォルダ内でパディングを探しますが、常に初期位置に残ることはできますか?

ベストアンサー1

glob相対パスでも動作しますので、簡単に使用できpdb/*.pdbます。glob結果は現在のディレクトリに基づいて返されます。

>>> glob.glob('test/*.txt')
['test/c.txt', 'test/b.txt', 'test/a.txt']

ディレクトリなしで結果が必要な場合は、いつでも次のようにos.path.basenameファイル名を取得できます。

>>> [os.path.basename(p) for p in glob.glob('test/*.txt')]
['c.txt', 'b.txt', 'a.txt']

おすすめ記事