Python

python:使用特定目錄中的glob

  • November 24, 2020

我正在使用 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)

我如何使用 glob 的特定路徑,例如直接從某個特定子目錄載入所有這些 pdb 填充,這些子目錄與我的 python 腳本位於同一位置,然後返回到初始目錄(以產生一些輸出)?

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

然而,在這種情況下,一切(包括結果的保存)都將發生在這個包含所有初始 PDB 填充的目錄中。是否可以指示 glob 在 pdb 文件夾中查找填充但始終保持在初始位置?

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

引用自:https://unix.stackexchange.com/questions/621335