pathlib를 사용하여 모든 하위 디렉터리를 재귀적으로 반복합니다.
pathlib을 사용하여 지정된 디렉토리의 모든 하위 디렉토리에 대해 재귀적으로 반복하려면 어떻게 해야 합니까?
p = Path('docs')
for child in p.iterdir(): child
지정된 디렉토리의 직계 하위 항목에만 반복되는 것 같습니다.
이것이 가능하다는 것은 알고 있습니다.os.walk()
또는glob
하지만 저는 경로 객체로 작업하는 것을 좋아하기 때문에 pathlib을 사용하고 싶습니다.
사용(선행을 대체함)**
에Path().glob("**/*")
):
path = Path("docs")
for p in path.rglob("*"):
print(p.name)
의 방법을 사용할 수 있습니다.Path
객체:
p = Path('docs')
for i in p.glob('**/*'):
print(i.name)
폴더만 찾으려면 다음과 같이 하십시오.
'**/'
경로에 있는 모든 폴더의 모든 경로를 찾으려면 다음을 수행합니다.
p = Path('docs')
for child in p.glob('**/'):
print(child)
경로가 없는 폴더 이름만 원하는 경우 다음과 같이 폴더 이름을 인쇄합니다.
p = Path('docs')
for child in p.glob('**/'):
print(child.name)
pathlib
가지다glob
우리가 패턴을 인수로 제공할 수 있는 방법.
예:Path('abc').glob('**/*.txt')
현재 폴더를 찾습니다.abc
모든 하위 디렉터리를 찾기 위해 재귀적으로 모든 하위 디렉터리를 찾습니다.txt
파일
목록 이해도 사용:
(1) [f.name for f in p.glob("**/*")] # or
(2) [f.name for f in p.rglob("*")]
추가할 수 있습니다.if f.is_file()
또는if f.is_dir()
(1) 또는 (2)로 각각 파일만 또는 디렉토리만 대상으로 지정합니다.또는 대체"*"
와 같은 무늬가 있는"*.txt"
목표로 삼으려면.txt
파일 전용입니다.
이 빠른 안내서를 참조하십시오.
Python 3.12(이 게시물 작성 시점에서 공개되지 않음)에서 사용할 수 있습니다.pathlib.Path.walk()
언급URL : https://stackoverflow.com/questions/50714469/recursively-iterate-through-all-subdirectories-using-pathlib
'programing' 카테고리의 다른 글
"forach" 루프의 반복을 건너뛰려면 어떻게 해야 합니까? (0) | 2023.05.21 |
---|---|
VB.NET에서 공유 변수는 어떤 용도로 사용됩니까? (0) | 2023.05.21 |
VB.NET의 기본 속성? (0) | 2023.05.21 |
Linq에서 SQL Like %를 수행하는 방법은 무엇입니까? (0) | 2023.05.21 |
Android용으로 개발할 때 이클립스 콘솔로 메시지를 출력하는 방법 (0) | 2023.05.21 |