>백엔드 개발 >파이썬 튜토리얼 >Python에서 시각적으로 구조화된 디렉토리 트리를 생성하기 위해 os.walk()를 어떻게 사용할 수 있습니까?

Python에서 시각적으로 구조화된 디렉토리 트리를 생성하기 위해 os.walk()를 어떻게 사용할 수 있습니까?

Patricia Arquette
Patricia Arquette원래의
2024-11-08 22:06:02731검색

How can I use os.walk() to create a visually structured directory tree in Python?

Python에서 재귀적 디렉터리 탐색을 위해 os.walk() 사용

디렉토리를 재귀적으로 탐색하고 해당 내용을 나열하는 것은 Python 프로그래밍에서 일반적인 작업입니다. . os.walk() 함수는 이 목표를 달성하는 효율적인 방법을 제공합니다.

원본 코드

다음 코드는 os.walk()를 사용하여 탐색하는 방법을 보여줍니다. 루트 디렉터리에서 모든 하위 디렉터리로 이동하고 해당 내용을 인쇄합니다.

#!/usr/bin/python

import os
import fnmatch

for root, dir, files in os.walk("."):
        print(root)
        print("")
        for items in fnmatch.filter(files, "*"):
                print("..." + items)
        print("")

이 코드는 현재 디렉터리와 하위 디렉터리의 콘텐츠를 효과적으로 나열하지만 디렉터리와 파일을 구분하지는 않습니다.

원하는 출력

그러나 원하는 출력을 위해서는 디렉터리를 하위 폴더로 표시하고 파일을 해당 폴더 내의 항목으로 표시해야 합니다.

A
---a.txt
---b.txt
---B
------c.out

수정된 코드

원하는 출력을 얻기 위해 다음 수정된 코드에서는 os.path.basename()을 사용하여 디렉터리 경로를 얻습니다.

#!/usr/bin/python

import os

# traverse root directory, and list directories as dirs and files as files
for root, dirs, files in os.walk("."):
    path = root.split(os.sep)
    print((len(path) - 1) * '---', os.path.basename(root))
    for file in files:
        print(len(path) * '---', file)

이 코드는 먼저 os.sep을 사용하여 경로를 분할하여 디렉터리 수준을 식별합니다. 그런 다음 깊이에 해당하는 대시 수를 사용하여 디렉터리 이름을 인쇄한 다음 각 수준에 대한 추가 대시와 함께 해당 디렉터리 내의 파일 목록을 인쇄합니다.

위 내용은 Python에서 시각적으로 구조화된 디렉토리 트리를 생성하기 위해 os.walk()를 어떻게 사용할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.