Python을 사용하여 디렉토리의 파일 수를 계산해야합니다.
가장 쉬운 방법은 len(glob.glob('*'))
이지만 디렉토리 자체를 파일로 계산합니다.
디렉토리 의 파일 만 계산할 수있는 방법이 있습니까?
답변
os.listdir()
를 사용하는 것보다 약간 더 효율적 glob.glob
입니다. 파일 이름이 일반 파일인지 (디렉토리 나 다른 엔티티가 아닌) 테스트하려면 os.path.isfile()
다음을 사용하십시오 .
import os, os.path
# simple version for working with CWD
print len([name for name in os.listdir('.') if os.path.isfile(name)])
# path joining version for other paths
DIR = '/tmp'
print len([name for name in os.listdir(DIR) if os.path.isfile(os.path.join(DIR, name))])
답변
import os
path, dirs, files = next(os.walk("/usr/lib"))
file_count = len(files)
답변
모든 종류의 파일에 대해 하위 디렉토리에는 다음이 포함됩니다.
import os
list = os.listdir(dir) # dir is your directory path
number_files = len(list)
print number_files
파일 만 (하위 디렉토리 제외) :
import os
onlyfiles = next(os.walk(dir))[2] #dir is your directory path as string
print len(onlyfiles)
답변
fnmatch가 매우 유용한 곳입니다.
import fnmatch
print len(fnmatch.filter(os.listdir(dirpath), '*.txt'))
자세한 내용은 http://docs.python.org/2/library/fnmatch.html
답변
하위 디렉토리의 파일을 포함하여 디렉토리의 모든 파일을 계산하려면 가장 비법적인 방법은 다음과 같습니다.
import os
file_count = sum(len(files) for _, _, files in os.walk(r'C:\Dropbox'))
print(file_count)
파일 수를 명시 적으로 추가하는 것보다 빠른 합계를 사용합니다 (타이밍 보류 중)
답변
import os
print len(os.listdir(os.getcwd()))
답변
def directory(path,extension):
list_dir = []
list_dir = os.listdir(path)
count = 0
for file in list_dir:
if file.endswith(extension): # eg: '.txt'
count += 1
return count