파일 및 디렉터리 번호 변동 [닫기]

파일 및 디렉터리 번호 변동 [닫기]

상황: 총 파일 및 디렉터리 수를 재귀적으로 개별적으로 계산하는 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)

관련 정보