os.walk()를 사용하여 디렉토리 트리를 탐색하는 python 스크립트를 작성하고 있습니다. 다른 파일 시스템에 마운트 된 하위 디렉토리를 건너 뛸 수있는 기능을 제공하고 싶습니다. find -xdev
의 경우와 같습니다. os.walk()에 대한 문서를 살펴보면 자동으로 수행 할 인수가 없습니다. 내가 직접 필터링하는 데 사용할 수있는 것이 있습니까? Linux와 Mac OS X에서 모두 실행되기를 바랍니다.os.walk를 사용할 때 파이썬에서 서브 디렉토리가 같은 파일 시스템에 있는지 판별하는 방법이 있습니까?
3
A
답변
6
1
os.stat
호출과 os.walk
에 의해 주어진 dirnames 필터링을 조합하여 사용할 수 있다고 생각합니다. 이런 식으로 뭔가 : 디렉토리 목록을 수정해야
import os
for root, dirs, files in os.walk(somerootdir) :
do_processing(root, dirs, files)
dirs = [i for i in dirs if os.stat(os.path.join(root, i)).st_dev == os.stat(root).st_dev]
같은 장치가없는 것들을 제거하여,로 재귀하는.
OS X에서 작동하는 방법에 대해서는 잘 모르겠지만 약간의 테스트를 거친 후 Linux에서 작동하는 것으로 보입니다.
관련 문제
- 1. SSH보다 os.walk를 사용할 수 있습니까?
- 2. Perl에서 표준 입력이 있는지 판별하는 방법은 무엇입니까?
- 3. 파이썬에서 다른 파일과 같은 파일 시스템에있는 파일입니까?
- 4. 디렉토리에 하위 디렉토리가 있는지 여부를 확인하는 방법이 있습니까?
- 5. 파이썬에서 + = 오버로드하는 방법이 있습니까?
- 6. rpmbuild는 서브 디렉토리가
- 7. 파이썬에서 서브 프로세스를 사용할 때 FileIO의 순서가 잘못되었습니다.
- 8. ftplib을 파이썬에서 사용할 때
- 9. 파일 시스템에 특정 파일이 있는지 확인할 수 있습니까?
- 10. FAT 파일 시스템에 서명이 있습니까?
- 11. Eclipse에서 CPU 시간을 먹고있는 것을 판별하는 방법이 있습니까?
- 12. 리눅스 파일 시스템에 대체 데이터 스트림 같은 것이 있습니까?
- 13. Ruby에서 디렉토리가 비어 있는지 확인하십시오.
- 14. 파이썬에서 파일 형식을 어떻게 서브 클래스 화합니까?
- 15. 파일 시스템에 파일 저장
- 16. 파이썬에서 서브 클래 싱하기
- 17. BLOB를 Oracle의 클라이언트 측 파일 시스템에 저장하는 쉬운 방법이 있습니까?
- 18. 파이썬에서 파이프 파일 기술자를 사용할 때 EOF를 확인하는 방법은 무엇입니까?
- 19. 터치를 시스템에 가짜로 만드는 방법이 있습니까?
- 20. 파일 시스템에
- 21. 파이썬에서 사용할 GPS 라이브러리가 있습니까?
- 22. C# 주어진 파일 경로에 루트 디렉토리가 있는지 확인하십시오.
- 23. Perl에 디렉토리가 있는지 여부를 확인하는 방법은 무엇입니까?
- 24. 안전하게 Page.IsValid를 사용할 수 있는지 확인하는 방법이 있습니까?
- 25. 압축 할 EXT3 파일 시스템에 사용할 수있는 패치가 있습니까?
- 26. POSIX 시스템에 명령이 있는지 알아보십시오.
- 27. 모든 파일 시스템에 ANT 파일 세트가 포함됩니다.
- 28. 파일 시스템에 파일 시스템 만들기
- 29. 파이썬에서 파일을 사용할 수 있는지 확인하십시오 (다른 프로세스에서 사용하지 않음).
- 30. PHP : 데이터를 로컬 파일 시스템에 저장하는 데이터베이스와 같은 솔루션이 필요합니다.
dirs 목록은 del 또는 slice 할당을 사용하여 수정해야합니다. 그렇지 않으면 os.walk에서 사용하는 dirs 목록을 변경하는 대신 로컬 변수 dir을 새 목록으로 리 바인드하기 만하면됩니다. – Constantin