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']