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