가장 효율적인 방법은이며 파이썬의 모든 폴더와 하위 폴더에있는 모든 파일 수를 계산합니까? 나는 이것을 리눅스 시스템에서 사용하고 싶다.파이썬으로 모든 폴더/하위 폴더의 모든 파일 수를 계산하십시오.
출력 예 : 파일이없는
(Path files)
/ 2
/bin 100
/boot 20
/boot/efi/EFI/redhat 1
....
/root 34
....
경로는 무시해야
.감사합니다.
가장 효율적인 방법은이며 파이썬의 모든 폴더와 하위 폴더에있는 모든 파일 수를 계산합니까? 나는 이것을 리눅스 시스템에서 사용하고 싶다.파이썬으로 모든 폴더/하위 폴더의 모든 파일 수를 계산하십시오.
출력 예 : 파일이없는
(Path files)
/ 2
/bin 100
/boot 20
/boot/efi/EFI/redhat 1
....
/root 34
....
경로는 무시해야
.감사합니다.
os.walk()
으로 할 수 있습니다. 이 숨겨진 즉 파일, 점 (.
)로 시작하는 사람들도 포함됩니다
import os
for root, dirs, files in os.walk('/some/path'):
if files:
print('{0} {1}'.format(root, len(files)))
참고.
숨겨진 파일도 필요합니다. 그건 문제가되지 않습니다. 하지만 지금이 오류가 발생했습니다 : Traceback (가장 최근에 마지막으로 호출) : 파일 "test.py", 줄 5,
같은 오류가 발생합니다. 어떤 Python 버전을 사용합니까? –
@ S.Kajmer : 어떤 Python 버전을 사용하고 있습니까? 이 오류는 일부 초기 버전의 Python에 영향을 미치는 것으로 알려져 있습니다. 문제를 피할 수있는 명시 적으로 명명 된 필드를 사용하도록 답변을 업데이트했습니다. – mhawke
import os
print [(item[0], len(item[2])) for item in os.walk('/path') if item[2]]
폴더/하위 폴더와 파일 수의 튜플 목록을 /path
에 반환합니다.
또는
import os
for item in os.walk('/path'):
if item[2]:
print item[0], len(item[2])
그것은 폴더/하위 폴더 및 파일을 인쇄는 /path
에서 계산합니다.
더 빨리 해결책을 시도하려는 경우
, 당신은 결합을 시도했다 :os.scandir() # from python 3.5.2
으로 반복 반복적으로 사용 : 나는 os.walk
기능으로 생각하기 때문에
from itertools import count
counter = count()
counter.next() # returns at first 0, next 1, 2, 3 ...
if counter.next() > 1000:
print 'dir with file count over 1000' # and use continue in for loop
어쩌면, 더 빠른 것 너에게 불필요한 것들이다.
어떻게 할 수있을 것이라고 생각하십니까? 아직 아무 것도 시도하지 않았습니까? – mhawke