복붙노트

[PYTHON] 파이썬에서 디렉토리 내용을 어떻게 나열 할 수 있습니까?

PYTHON

파이썬에서 디렉토리 내용을 어떻게 나열 할 수 있습니까?

어렵지는 않지만 정신적 인 장애가 있습니다.

해결법

  1. ==============================

    1.

    import os
    os.listdir("path") # returns list
    
  2. ==============================

    2.일방 통행:

    일방 통행:

    import os
    os.listdir("/home/username/www/")
    

    또 다른 방법:

    glob.glob("/home/username/www/*")
    

    여기에있는 예가 있습니다.

    위의 glob.glob 메서드는 숨김 파일을 나열하지 않습니다.

  3. ==============================

    3.재귀가 필요한 경우 os.walk를 사용할 수 있습니다.

    재귀가 필요한 경우 os.walk를 사용할 수 있습니다.

    import os
    start_path = '.' # current directory
    for path,dirs,files in os.walk(start_path):
        for filename in files:
            print os.path.join(path,filename)
    
  4. ==============================

    4.glob.glob 또는 os.listdir이 처리합니다.

    glob.glob 또는 os.listdir이 처리합니다.

  5. ==============================

    5.os 모듈은 모든 것을 처리합니다.

    os 모듈은 모든 것을 처리합니다.

  6. ==============================

    6.Python 3.4+에서 새로운 pathlib 패키지를 사용할 수 있습니다 :

    Python 3.4+에서 새로운 pathlib 패키지를 사용할 수 있습니다 :

    from pathlib import Path
    for path in Path('.').iterdir():
        print(path)
    

    Path.iterdir ()은리스트로 쉽게 바뀔 수있는 반복자를 반환합니다 :

    contents = list(Path('.').iterdir())
    
  7. ==============================

    7.아래 코드는 디렉터리와 해당 디렉터리 내의 파일을 나열합니다. 다른 하나는 os.walk입니다.

    아래 코드는 디렉터리와 해당 디렉터리 내의 파일을 나열합니다. 다른 하나는 os.walk입니다.

    def print_directory_contents(sPath):
            import os                                       
            for sChild in os.listdir(sPath):                
                sChildPath = os.path.join(sPath,sChild)
                if os.path.isdir(sChildPath):
                    print_directory_contents(sChildPath)
                else:
                    print(sChildPath)
    
  8. ==============================

    8.Python 3.5부터는 os.scandir을 사용할 수 있습니다.

    Python 3.5부터는 os.scandir을 사용할 수 있습니다.

    차이점은 이름이 아닌 파일 항목을 반환한다는 것입니다. Windows와 같은 일부 OS에서는 os.path.isdir / file이 파일인지 여부를 알기 위해 os.path.isdir / file을 사용할 필요가 없으며 Windows에서 dir을 검색 할 때 stat가 이미 완료 되었기 때문에 CPU 시간을 절약한다는 것을 의미합니다.

    디렉토리를 나열하고 max_value 바이트보다 큰 파일을 출력하는 예 :

    for dentry in os.scandir("/path/to/dir"):
        if dentry.stat().st_size > max_value:
           print("{} is biiiig".format(dentry.name))
    

    (여기에 대한 광범위한 성능 기반 답변 읽기)

  9. from https://stackoverflow.com/questions/2759323/how-can-i-list-the-contents-of-a-directory-in-python by cc-by-sa and MIT license