파일 및 디렉터리 수 변동

파일 및 디렉터리 수 변동

상황: 총 파일 및 디렉터리 수를 재귀적으로 개별적으로 계산하는 Python 스크립트가 있습니다. 아래는 코드입니다:

def traverse(top):
    filecount = 0
    dircount = 0
    for root, dirs, files in os.walk(top):
        for f in files:
            if dirs: dircount += 1
            elif files: filecount += 1
            else:
                print("Error")
                break
    print("Num of dir: " + dircount)
    print("Num of files: " + filecount)

문제: 코드를 실행할 때마다 디렉터리와 파일 수가 달라집니다.

질문: 파일 및 디렉터리 번호가 변동하는 이유를 제안하시겠습니까? 아마도 Linux가 작동하는 방식일까요?

추가 정보: 내 스크립트의 이 부분이 전체 프로그램에 매우 중요하므로 확인하고 싶습니다.

답변1

실행 중인 Unix 시스템은 정상 작동 중에 가끔씩 임시 파일과 디렉터리를 생성합니다.

편집기에서 파일을 열거나 이메일을 보내는 것만으로도 임시 파일이 한두 개 생성될 가능성이 높으며, 웹을 탐색하면 짧은 시간에 수백 개의 파일이 생성되고 삭제될 수 있습니다. 또한 그래픽 데스크탑 환경에서는 일반적으로 알 수 없는 캐싱 및 기타 작업(임시 파일 생성 및 삭제)을 수행할 수 있습니다.

/tmp최상위 디렉토리가 무엇인지에 따라 아래의 모든 디렉토리 /var와 홈 디렉토리와 같이 많이 변경되는 경향이 있는 디렉토리를 다룰 수 있습니다 .

답변2

dirs는 현재(루트) 디렉터리의 디렉터리 이름 목록이고, files는 현재 디렉터리의 파일 이름 목록입니다.

내 생각에 당신은 다음과 같은 것을 더 원한다고 생각합니다.

def traverse(top):
    filecount = 0
    dircount = 0
    for root, dirs, files in os.walk(top):
        dircount += len(dirs)
        filecount += len(files)
    print("Num of dir: " + dircount)
    print("Num of files: " + filecount)

관련 정보