답변:
일방 통행:
import os
os.listdir("/home/username/www/")
다른 방법 :
glob.glob("/home/username/www/*")
glob.glob
위 의 방법은 숨겨진 파일을 나열하지 않습니다.
원래 몇 년 전에이 질문에 대답 했으므로 pathlib 가 Python에 추가되었습니다. 디렉토리를 나열하는 선호하는 방법은 일반적 iterdir
으로 Path
객체에 대한 메소드와 관련이 있습니다.
from pathlib import Path
print(*Path("/home/username/www/").iterdir(), sep="\n")
['c:\\users']
glob.glob(r'c:\users\*')
(실제로 디렉토리를 나열하지는 않지만 별표를 확장하여 비슷한 작업을 수행합니다).
glob.glob
아니면 os.listdir
할 것입니다.
import glob
ENTER glob.glob(r'c:\users')
ENTER 만 반환되는 것 같습니다 ['c:\\users']
. 왜 그런 겁니까? 다른 사용자가 지적했듯이 숨겨진 파일을 무시하고 디렉토리의 내용을 반환하기 때문에 glob.glob를 사용하고 싶습니다. 이건 중요하다.
glob
같이 와일드 카드를 지정해야하기 때문입니다 .glob.glob(r'c:\users\*')
Python 3.5부터 사용할 수 있습니다 os.scandir
.
차이점은 이름이 아닌 파일 항목을 반환한다는 것 입니다. Windows와 같은 일부 OS os.path.isdir/file
에서는 파일인지 여부를 알 필요가 없으며 stat
Windows에서 dir을 스캔 할 때 이미 수행되었으므로 CPU 시간이 절약 됩니다.
디렉토리를 나열하고 max_value
바이트 보다 큰 파일을 인쇄하는 예 :
for dentry in os.scandir("/path/to/dir"):
if dentry.stat().st_size > max_value:
print("{} is biiiig".format(dentry.name))
아래 코드는 디렉토리 내의 디렉토리와 파일을 나열합니다. 다른 하나는 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)
.XYZ
와 함께 사용될 때 glob.glob가 숨겨진 파일을 나열glob.glob("/home/username/www/.*")
합니까?