Python 6

[Python] 6. 파일 자동 백업 소프트웨어 만들기

스케줄러 주기 설정 기능 추가 스케줄러의 주기를 cron탭 형식으로 설정할 수 있도록 apscheduler 모듈을 추가하였다. 주기 설정은 시, 분, 초로 설정 가능하도록 라벨과 콤보 박스, 체크박스 요소를 추가하였다. 콤보박스 안에 시, 분, 초의 숫자들을 반복문으로 넣어주고 체크박스의 체크 여부를 통해 설정한 시간에 대해 매번 실행될 수 있도록 구성하였다. 주기 설정 체크박스를 체크했을 때의 함수 호출도 각각 다르다. 체크박스를 체크하여 "매N시간마다" 주기를 설정하려고하면 N이 0보다 커야하기 때문에 콤보 박스의 0 값을 없애고, 라벨의 문구도 설정 가능한 숫자 범위로 업데이트 시켜주도록 되어있다. 백업 스케줄러 실행 전에 주기 설정 값들을 각 변수에 넣는 부분이다. 311~316LINE을 보면 각..

Python 2022.01.28

[Python] 5. 파일 자동 백업 소프트웨어 만들기

QThread 클래스 사용 PyQt5 모듈로 위젯 창을 만들고 화면에 띄우면 이 어플리케이션은 루프를 돌면서 사용자의 액션을 감지하여 이벤트에 대한 처리를 한다. 이 파일 자동 백업 소프트웨어는 필요한 값들을 입력하고 아래 사진의 Run버튼을 누르면 파일 백업 기능을 수행하는데, 이때 스케쥴러 모듈을 이용하여 반복문을 돌면서 백업 스크립트를 실행하게된다. 이런 구조로는 백업 기능은 제대로 하긴 하지만 반복문으로 인해 계속 돌기 때문에 스케쥴러가 실행한 함수의 처리가 끝나야지만 요소의 액션 이벤트가 처리가 된다. 즉, 백업 함수가 실행되는 동안 다른 버튼 같은 요소의 이벤트를 실시간으로 처리할 수가 없는 구조인데 이 문제를 PyQt5의 QThread 클래스를 사용하여 쓰레드 환경을 구축하여 해결하였다. T..

Python 2022.01.24

[Python] 4. 파일 자동 백업 소프트웨어 만들기

PyQt5 모듈 추가 PyQt5는 파이썬의 GUI 라이브러리이다. Qt 애플리케이션 프레임워크를 위한 Python 바인딩 세트이며 Windows, macOS, Linux, iOS 및 Android를 포함하여 Qt가 지원하는 모든 플랫폼에서 실행된다고 한다. PyQt5 모듈을 이용해 cmd창에서 실행했던 백업 스크립트를 GUI 환경에서 백업 기능을 사용할 수 있도록 변경하였다. PyQt5로 GUI를 구성하기 위해 QtWidgets 모듈 안에 있는 해당 클래스들을 import하였다. 위 코드가 GUI창을 띄우기 위한 코드이다. 189LINE에 __name__ 변수는 현재 모듈의 이름이 저장되는 내장 변수이고 기본 값은 __main__이다. 창을 띄우기 위해서 QApplication 클래스를 생성해야하는데, ..

Python 2022.01.24

[Python] 3. 파일 자동 백업 소프트웨어 만들기

filedialog 모듈 추가 이전에 작성했던 스크립트에서 편의성을 더하기 위해 filedialog 모듈을 추가하였다. filedialog 모듈이란 파일 탐색기 창을 띄워 os내의 디렉토리나 파일에 접근하기 위한 클래스와 함수를 제공하는 모듈이다. 이전 방식은 백업 파일을 저장할 경로와 백업할 파일이름을 일일이 텍스트로 입력했다면, filedialog 모듈을 이용해 파일탐색기를 열어 해당 변수들의 값을 가져올 수 있게 되었다. 사용한 filedialog모듈 함수 askdirectory() - 디렉토리를 선택하면 디렉토리 경로를 가져오는 함수 askopenfilename() - 파일을 선택하면 디렉토리 경로와 파일 이름을 가져오는 함수 initialdir 인자는 파일 탐색기를 띄웠을 때 디렉토리 시작 위치..

Python 2022.01.16

[Python] 2. 파일 자동 백업 소프트웨어 만들기

모듈화 스크립트를 작성하다보니 백업 기능을 수행하는 함수 안에 파일 복사나 메일 보내기 같은 기능들이 모든게 들어있다보니 지저분하다는 생각이 들어 기능을 수행하는 부분들을 나눠 모듈화를 진행하였다. makeBackupDir() - 백업 디렉토리를 생성하는 함수 copyInBackupDir() - 백업 디렉토리에 백업 파일을 복사하는 함수 sendMailBackupFile() - 백업 파일을 나에게 메일을 보내는 함수 이렇게 핵심 역할을 하는 기능들을 나눠 모듈화를 하면 유지보수와 단위 테스트하기에 좋을 것이다. 사용성 확대 저번 포스팅에서 작성했던 스크립트에는 백업을 하기 위해 필요했던 값들을 하드코딩하여 정적으로 기능이 동작되게 작성했다면, 이번에는 사용자가 어디에 백업할 것이고 무엇을 백업할 것인지 ..

Python 2022.01.10

[Python] 1. 파일 자동 백업 소프트웨어 만들기

업무 자동화의 필요성 회사에서 업무를 하거나 집에서 작업을 할 때에 주기적으로나 버전별로 파일을 백업을 해야될 때가 있었는데, 수동적으로 백업을 하다보니 귀찮아지는 경우가 생겨 백업을 제대로 안하는 일이 생겼다. 그렇게 자동 백업 스크립트를 만들기로 하고 스크립트를 작성하였다. 스크립트 작성 처음에 생각했던 기능들은 대략 이 정도이다. 1. 백업하고자 하는 파일을 특정 디렉토리에 복사 붙여넣기하여 백업하는 기능 2. 1에서 백업했던 파일을 자기 자신한테 메일을 보내 백업하는 기능 3. 이 1, 2의 작업을 일정 주기마다 실행할 수 있게하는 기능 이 세가지의 기능을 생각해두고 외부, 내부 모듈을 사용해 스크립트를 작성하였다. 1~10LINE 기능을 구현하는 데에 필요한 모듈들을 import한 부분이다. o..

Python 2021.12.31
1