반응형
목차
tkinter 경로(Path) 정보 가져 오기, 파일 복사하기
앞서 포스트에서 파일(File) 업로드를 위한 윈도우 창을 디자인 하였습니다.
https://scribblinganything.tistory.com/417
이번 장에서는 디자인을 이용해서 파일을 불러오고 불러온 파일의 경로를 저장하고 다른 폴더에 해당 파일을 복사하는 방법에 대해 알아보겠습니다.
함수 코드>>
excel_ext = r"*.xlsx *.xls *.csv"
def file_find():
file = filedialog.askopenfilenames(filetypes=(("Excel file", excel_ext), ("all file", "*.*")), initialdir=r"C:\Users")
en_filepath.delete(0,END)
en_filepath.insert(END, file[0])
def file_upload():
if len(en_filepath.get()) == 0:
mbox.showinfo("warning","select file, please")
return
else:
file_name = os.path.basename(en_filepath.get())
dest_path = os.path.join("D:\\", file_name)
shutil.copy(en_filepath.get(),dest_path)
en_filepath.delete(0,END)
return
1번 라인 : 엑셀(excel) 파일을 불러 올 것인데 읽을 확장자명에 대한 정의를 합니다.
3~6번 라인 : 엑셀(excel) 파일을 찾는 함수 입니다.
4번 라인 : askopenfilenames 함수를 사용해서 파일을 검색하는 함수를 실행합니다.
5~6번 라인 : 앞서 디자인한 파일 입력창에 불러온 파일을 입력합니다.
8~17번 라인 : 불러온(Load) 파일을 D드라이브에 복사합니다.
9번 라인 : 입력창에 파일경로와 파일명이 있는지 확인 합니다.
10번 라인 : 메세지창을 이용해 경고 해줍니다.
13번 라인 : os.path.basename을 사용해서 경로는 삭제하고 파일명만 추출합니다.
14번 라인 : 옮기고자 하는 경로에 파일명을 추가 합니다.
15번 라인 : shutil 라이브러리를 사용해서 파일을 복사해 줍니다.
반응형
tkinter로 파일 업로드 윈도우 만들기: 전체 코드
이번에는 앞서 만든 디자인과 함수를 합쳐서 결과를 확인해보겠습니다.
전체 코드>>
from tkinter import *
from tkinter import filedialog
import tkinter.messagebox as mbox
import os
import shutil
excel_ext = r"*.xlsx *.xls *.csv"
def file_find():
file = filedialog.askopenfilenames(filetypes=(("Excel file", excel_ext), ("all file", "*.*")), initialdir=r"C:\Users")
en_filepath.delete(0,END)
en_filepath.insert(END, file[0])
def file_upload():
if len(en_filepath.get()) == 0:
mbox.showinfo("warning","select file, please")
return
else:
file_name = os.path.basename(en_filepath.get())
dest_path = os.path.join("D:\\", file_name)
shutil.copy(en_filepath.get(),dest_path)
en_filepath.delete(0,END)
return
app = Tk()
en_filepath = Entry(app, width=100)
en_filepath.pack(fill="x", padx=1, pady=1)
fr_bt = Frame(app)
fr_bt.pack(fill="x", padx=1, pady=1)
bt_upload = Button(fr_bt, text="Upload", width=10, command= file_upload)
bt_upload.pack(side="right", padx=1, pady=1)
bt_find = Button(fr_bt, text="Find", width=10, command= file_find)
bt_find.pack(side="right", padx=1, pady=1)
app.title('scribblinganything.tistory.com')
app.mainloop()
결과>>
아래 그림은 실행 후 파일을 로드하고 파일 복사가 완료된 화면입니다.
반응형