프로그램 파일
폴더의 하위경로 백업 프로그램
파이썬 소스코드
import tkinter
import tkinter.font
from tkinter import *
from tkinter import filedialog
import os
from distutils.dir_util import copy_tree
import threading
import time
import sys
#백업폴더 선택
def start_bnt_click():
dir_path = filedialog.askdirectory(parent=window,initialdir="\\",title='폴더를 선택하세요')
print(dir_path)
start_path.config(text=dir_path)
#백업될 폴더 선택
def end_btn_click():
dir_path = filedialog.askdirectory(parent=window,initialdir="\\",title='폴더를 선택하세요')
print(dir_path)
end_path.config(text=dir_path)
#시작버튼이 클릭되면
def btn_go_click():
threading.Thread(target=copy_thread).start() #copy_thread실행 시간이 오래소요되면 응답없음으로 나옴 쓰레드로 실행해야함
#복사동작하는 쓰레드
def copy_thread():
#config.txt 설정파일에서 읽어 경로 설정
file_path = 'config.txt'
with open(file_path, 'w', encoding='UTF8') as f :
f.write(start_path.cget("text") + ',')
f.write(end_path.cget("text"))
lb_state.config(text="복사중...")
copy_tree(start_path.cget("text"), end_path.cget("text"),update=1,) #폴더백업
lb_state.config(text="복사완료...")
time.sleep(5.0)
lb_state.config(text="실행버튼을 눌러 복사하세요")
#tkinter 윈도우설정
window=tkinter.Tk()
window.title("파일백업")
window.geometry("380x100+800+300")
window.resizable(False, False)
#백업폴더 경로 및 버튼 생성
start_path = Label(window,width=40,anchor="se")
start_path.grid(row=0, column=0)
btn_start = tkinter.Button(window, overrelief="solid",text="백업폴더", width=10, command=start_bnt_click, repeatdelay=1000, repeatinterval=100)
btn_start.grid(row=0, column=1)
#백업될폴더 경로 및 버튼 생성
end_path = Label(window,width=40,anchor="se")
end_path.grid(row=1, column=0)
btn_end = tkinter.Button(window, overrelief="solid",text="백업될폴더", width=10, command=end_btn_click, repeatdelay=1000, repeatinterval=100)
btn_end.grid(row=1, column=1)
#실행버튼 생성
btn_go = tkinter.Button(window, overrelief="solid",text="실행", width=10, command=btn_go_click, repeatdelay=1000, repeatinterval=100)
btn_go.grid(row=3, column=0)
#마지막줄에 상태를 표시하는 라벨 생성
lb_state = Label(window,width=40,text="실행버튼을 눌러 복사하세요")
lb_state.grid(row=4, column=0)
#.py 파일이 실행되는 디렉토리로 이동
#os.chdir(os.path.dirname(os.path.abspath(__file__))) #.py로 실행시 파일경로
os.chdir(os.path.dirname(os.path.abspath(sys.executable))) #.exe로 실행파일 생성시 경로
print(os.getcwd())
#config.txt 설정 파일이 있으면 읽어옴
try:
file_path = 'config.txt'
with open(file_path, 'r', encoding='UTF8') as f :
read_file = f.read()
start_path.config(text=read_file.split(',')[0])
end_path.config(text=read_file.split(',')[1])
except:
pass
window.mainloop()
'파이썬' 카테고리의 다른 글
[마이크로 파이썬으로 만드는 드론과 사물인터넷] 소스코드 및 라이브러리 (0) | 2024.04.30 |
---|---|
[파이썬 인공지능 자동차] 제공자료 (0) | 2023.12.08 |
ESP32 마이크로파이썬 사물인터넷(라이브러리) (0) | 2023.10.13 |
SSS급 일잘러를 위한 파이썬과 40개의 작품들 (소스코드 및 문서서식) (1) | 2022.08.17 |
vs code에서 주석이 안될때, 한글입력이 이상할때 해결방법 (0) | 2022.06.28 |
파이썬 사용을 위한 VS CODE에 유용한 기능 설치하기 (0) | 2022.06.27 |
윈도우 환경에서 아나콘다 및 vs code 개발환경 구성2 (0) | 2022.06.27 |
[파이썬] 윈도우 환경에서 아나콘다 및 vs code 개발환경 구성1 (0) | 2022.06.27 |