일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 파워포인트
- matlab
- 오피스
- pyqt5
- git
- VBA
- 문자열
- 윈도우11
- pythongui
- Windows10
- 윈도우10
- 파이썬3
- 아웃룩
- 파이썬GUI
- 엑셀
- 비주얼베이직
- python3
- Windows11
- html
- win32com
- windows
- 파이썬
- Android
- Outlook
- python
- office
- pandas
- 깃
- 안드로이드
- Excel
Appia의 IT세상
파이썬[Python] 파일(file) / 디렉토리(directory) 비교 하기(filecmp) 본문
파이썬[Python] 파일(file) / 디렉토리(directory) 비교 하기(filecmp)
이번 포스팅에서는 파이썬을 이용해서 파일을 비교하는 부분에 대해서 이야기를 해보고자 합니다. 실제 많은 사람들은 파일 관리 및 중복된 파일에 대해서 특별히 관리 하지 않는 경우가 있습니다. 이럴 경우에 파일의 중첩여부에 따라서, 상당히 많은 저장 공간을 사용하기도 합니다. 따라서, 이번 포스팅에서는 파이썬(Python)을 이용해서, 파일과 폴더를 비교하는 방법에 대해서 이야기를 해보고자 합니다.
<파일 비교>
먼저, 파이썬[Python]에서는 파일 비교에 관련된 기본 모듈을 제공하고 있습니다. 일단 다음과 간단히2개의 텍스트 파일을 비교해보도록 하겠습니다.
Text1.txt | Text2.txt |
Hello, Appia _ Story Hello, Appia _ Story |
Hello, Appia _ Story |
위와 같은 파일을 만들어서 비교해보도록 하겠습니다.
import filecmp print(filecmp.cmp('Text1.txt', 'Text2.txt')) | cs |
이의 파일을 실행하니, 다음과 같은 결과가 나왔습니다.
False | cs |
물론, 파일 이름에 대해서 비교하는지에 대해서 궁금해 하시는 분들도 있습니다. 이 경우에는 os.stat()의 결과를 파일을 비교하게 됩니다. 따라서, 단순히 이름만 바뀐다고 내용이 다르다고 판단하지 않습니다.
<디렉토리 비교>
이번에는 디렉토리에 대해 비교하는 방법에 대해서 살펴보겠습니다. 앞서 파일 비교에는 함수를 제공했다면, directory비교에는 클래스를 제공합니다. 먼저 간단히 코드를 한번 실행해보겠습니다.
import filecmp print(filecmp.dircmp('QT', 'QT1')) rep = filecmp.dircmp('QT', 'QT1') print("Onlt QT have : ") print(rep.left_only) print("Onlt QT1 have : ") print(rep.right_only) | cs |
일단, 디렉토리 비교를 위해서는 filecmp에 있는 dircmp라는 클래스를 토대로 작업이 진행됩니다. 먼저 위의 실행 결과를 보겠습니다.
<filecmp.dircmp object at 0x02AC04F0> Onlt QT have : [] Onlt QT1 have : ['20200425_list_duplicate_remove.py'] Process finished with exit code 0 | cs |
위에서 보다시피, 클래스 안의 메소드를 통해서 원하시는 결과를 도출하셔야 합니다. 따라서, 관련된 메소드에 대해서 한번 살펴보겠습니다.
left | 인자값으로 왼쪽에 입력된 왼쪽 디렉토리 |
right | 인자값으로 오른쪽에 입력된 오른쪽 드렉토리 |
left_list | 인자값으로 왼쪽에 입력된 디렉토리의 파일과 sub-디렉토리 |
right_list | 인자값으로 오른쪽에 입력된 디렉토리의 파일과 sub-디렉토리 |
common | 왼쪽, 오른쪽 디렉토리에 공통으로 있는 파일과 sub-디렉토리 |
left_only | 왼쪽에만 있는 파일과 sub-디렉토리 |
right_only | 오른쪽에만 있는 파일과 sub-디렉토리 |
common_dirs | 왼쪽/ 오른쪽 디렉토리의 공통 하위 디렉토리 |
common_files | 왼쪽/ 오른쪽 디렉토리의 공통 파일 |
same_files | 왼쪽/ 오른쪽에 모두 있으나, cmp연사자 사용시 같은 파일 |
diff_files | 왼쪽/ 오른쪽에 모두 있으나, cmp연사자 사용시 다른 파일 |
위의 메소드를 이용해서, 디렉토리의 비교 분석할 수 있습니다.
이번 포스팅에서는 파이썬[Python] 파일(file) / 디렉토리(directory) 비교 하기(filecmp)라는 주제로 간단히 파일 / 디렉토리를 비교하는 방법에 대해서 살펴봤습니다. 궁금하신 점이나 문의 사항 있으시면 언제든지 댓글 및 방명록에 글 남겨주시길 바랍니다. 감사합니다.
'Python > Python 응용' 카테고리의 다른 글
파이썬[Python] 자료구조[Data Structure] 큐[QUEUE]구현하기 (0) | 2020.10.11 |
---|---|
파이썬[Python] 자료구조[Data Structure] 스택[Stack]구현하기 (0) | 2020.10.08 |
Python[파이썬] Ping(ICMP) 확인 하는 방법/확인하는 프로그램 만들기 (1) | 2020.07.18 |
Python[파이썬] PyQt5, requests를 이용한 GUI기반의 웹사이트 확인기 (6) | 2020.07.16 |
파이썬[Python] CPU, 램(RAM), OS(운영체제)등의 System(시스템) 정보 확인 (0) | 2020.06.03 |