파 이 썬 을 사용 하여 디 렉 터 리 를 비교 하 는 방법

4895 단어 Python목차
단일 파일 을 비교 하면 difflib 모듈 을 사용 할 수 있 습 니 다.filecmp 모듈 도 하나의 파일 을 비교 할 수 있 지만 전 자 는 더 좋 은 보고 서 를 제공 할 수 있 습 니 다.만약 우리 가 단지 두 디 렉 터 리 의 어떤 파일 이 일치 하 는 지 보고 싶 을 뿐 그 내용 과 관계 가 없다 면 후 자 는 선택 을 바 꾸 는 것 일 수도 있다.
디 렉 터 리 를 비교 하면 filecmp 모듈 을 사용 할 수 있 습 니 다.
IPython 에서 간단 한 명령 인 터 랙 션 시연 기능 은 다음 과 같 습 니 다.

In [1]: import filecmp

In [2]: ls

Chapter_01/ Chapter_02/

In [3]: dirobj = filecmp.dircmp('Chapter_01','Chapter_02')
두 디 렉 터 리 차이 보고 서 를 출력 합 니 다.

In [4]: dirobj.report()

diff Chapter_01 Chapter_02

Only in Chapter_01 : ['ip.py', 'os_mem.py', 'pid.py']

Only in Chapter_02 : ['d1.py', 'd2.py', 'diff.py', 'diff.zip', 'dns_parser.py', 'join.py', 'pydiff.py', 'report.html']

Identical files : ['c01.py']
출력 부분 보고서(맨 바깥 디 렉 터 리 는 첫 번 째 디 렉 터 리 와 차이 가 없 었 습 니 다.하위 디 렉 터 리 가 없 었 기 때 문 입 니 다)

In [5]: dirobj.report_partial_closure()

diff Chapter_01 Chapter_02

Only in Chapter_01 : ['ip.py', 'os_mem.py', 'pid.py']

Only in Chapter_02 : ['d1.py', 'd2.py', 'diff.py', 'diff.zip', 'dns_parser.py', 'join.py', 'pydiff.py', 'report.html']

Identical files : ['c01.py']
모든 보고서 출력

In [6]: dirobj.report_full_closure()

diff Chapter_01 Chapter_02

Only in Chapter_01 : ['ip.py', 'os_mem.py', 'pid.py']

Only in Chapter_02 : ['d1.py', 'd2.py', 'diff.py', 'diff.zip', 'dns_parser.py', 'join.py', 'pydiff.py', 'report.html']

Identical files : ['c01.py']
출력 결과 대상 형식 을 살 펴 보 니 이 형식 이 좀 이상 합 니 다.

In [7]: type(dirobj.report_full_closure())

diff Chapter_01 Chapter_02

Only in Chapter_01 : ['ip.py', 'os_mem.py', 'pid.py']

Only in Chapter_02 : ['d1.py', 'd2.py', 'diff.py', 'diff.zip', 'dns_parser.py', 'join.py', 'pydiff.py', 'report.html']

Identical files : ['c01.py']

Out[7]: NoneType
결과 대상 을 문자열 로 변환 하려 고 시도 합 니 다.

In [8]: str(dirobj.report_full_closure())

diff Chapter_01 Chapter_02

Only in Chapter_01 : ['ip.py', 'os_mem.py', 'pid.py']

Only in Chapter_02 : ['d1.py', 'd2.py', 'diff.py', 'diff.zip', 'dns_parser.py', 'join.py', 'pydiff.py', 'report.html']

Identical files : ['c01.py']

Out[8]: 'None'
왼쪽 디 렉 터 리 목록 출력

In [9]: dirobj.left_list

Out[9]: ['c01.py', 'ip.py', 'os_mem.py', 'pid.py']
오른쪽 디 렉 터 리 목록

In [10]: dirobj.right_list

Out[10]: 

['c01.py',

 'd1.py',

 'd2.py',

 'diff.py',

 'diff.zip',

 'dns_parser.py',

 'join.py',

 'pydiff.py',

 'report.html']
오른쪽 디 렉 터 리 에 만 존재 하 는 파일 목록

In [11]: dirobj.right_only

Out[11]: 

['d1.py',

 'd2.py',

 'diff.py',

 'diff.zip',

 'dns_parser.py',

 'join.py',

 'pydiff.py',

 'report.html']
공유 하위 디 렉 터 리

In [12]: dirobj.common_dirs

Out[12]: []
공유 파일

In [13]: dirobj.common_files

Out[13]: ['c01.py']
비교 할 수 없 는 디 렉 터 리

In [14]: dirobj.common_funny

Out[14]: []
동일 한 파일

In [15]: dirobj.same_files

Out[15]: ['c01.py']

비교 할 수 없 는 파일

In [16]: dirobj.funny_files

Out[16]: []
MATLAB 에서 제 가 자주 사용 하 는 명령 인 visdiff 는 파일 이나 디 렉 터 리 의 대비 에 사용 할 수 있 습 니 다.이렇게 비교 해 보면 파 이 썬 은 기본적으로 MATLAB 의 해당 명령 이 제공 하 는 기능 을 제공 했다.그러나 MATLAB 의 사용 은 더욱 간단 하고 세밀 한 것 같다.하지만 파 이 썬 사용 을 고려 할 필요 가 있다.우선 파 이 썬 은 무료 이 고,그 다음은 시작 속도 가 MATLAB 보다 훨씬 빠 를 것 입 니 다!그 밖 에 현재 의 Python 코드 도 매우 간단 하 다.자신 이 필요 로 할 때 몇 줄 의 코드 를 맞 추 면 일반적으로 자신 이 원 하 는 기능 을 실현 할 수 있다.
위 에서 파 이 썬 을 사용 하여 디 렉 터 리 를 비교 하 는 방법 은 바로 편집장 이 여러분 에 게 공유 한 모든 내용 입 니 다.여러분 께 참고 가 되 고 저희 도 많이 사랑 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기