일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 아웃룩
- 안드로이드
- 오피스
- 파이썬
- office
- pythongui
- python
- VBA
- 파이썬3
- 윈도우10
- Android
- Outlook
- windows
- Windows10
- pyqt5
- pandas
- Windows11
- 윈도우11
- 파워포인트
- 비주얼베이직
- 문자열
- 깃
- git
- win32com
- python3
- Excel
- matlab
- 엑셀
- 파이썬GUI
- html
Appia의 IT세상
파이썬[Python] tkinter 활용 - 파일 불러와서 텍스트 에디터 출력하기(filedialog,text) 본문
파이썬[Python] tkinter 활용 - 파일 불러와서 텍스트 에디터 출력하기(filedialog,text)
Appia 2020. 5. 25. 23:11파이썬[Python] tkinter 활용 - 파일 불러와서 텍스트 에디터 출력하기
이번 포스팅은 제 포스팅을 보시고, 질문 주신 분을 위해서 코딩을 하나 해봤습니다. 일단, 버튼을 눌러서 파일로 있는 부분에 내용을 출력하고 싶다는 내용이었습니다. 물론, 버튼을 생성하지는 않고, 메뉴에 파일 불러오기를 통해서 안에 있는 내용에 대해서 텍스트에 출력하는 예제를 한번 작성해봤습니다.
from tkinter import * from tkinter import filedialog class tkGUi : def __init__(self): self.root = Tk() menubar = Menu(self.root) self.text = Text(self.root) self.text.pack() filemenu = Menu(menubar, tearoff=0) menubar.add_cascade(label="File", menu=filemenu) filemenu.add_command(label="New", command=self.domenu) filemenu.add_command(label="Open", command=self.Load) filemenu.add_command(label="Save", command=self.Save) filemenu.add_command(label="Save as...", command=self.Save) filemenu.add_separator() filemenu.add_command(label="Exit", command=self.root.quit) editmenu = Menu(menubar, tearoff=0) menubar.add_cascade(label="Edit", menu=editmenu) editmenu.add_command(label="Copy", command=self.domenu) editmenu.add_command(label="Paste", command=self.domenu) editmenu.add_separator() editmenu.add_command(label="Delete", command=self.domenu) helpmenu = Menu(menubar, tearoff=0) menubar.add_cascade(label="Help", menu=helpmenu) helpmenu.add_command(label="About...", command=self.domenu) self.root.config(menu=menubar) self.root.mainloop() def Load(self): filename = filedialog.askopenfilename(initialdir="/", title="Select file", filetypes=(("text files", "*.txt"), ("all files", "*.*"))) print(filename) data=open(filename,'rt',encoding="utf-8") self.text.delete('1.0', END) self.text.insert(END,data.read()) def Save(self): filename = filedialog.asksaveasfilename(initialdir="/", title="Select file", filetypes=(("text files", "*.txt"), ("all files", "*.*"))) print(filename) def domenu(self): print("OK") if __name__ == '__main__': Example = tkGUi() | cs |
위의 부분을 실행하면 다음과 같은 결과가 나옵니다.
물론 여기까지는 기존에 포스팅 했었던 내용과 거의 유사합니다. 제가 변경한 것은 File에서 Open메뉴를 선택하여 파일을 선택하였을 때의 이벤트 처리를 중접적으로 업그레이드 하였습니다. 그리고, 이 부분을 바탕으로 단순히 tkinter에 대해서 지식 획득이 아니라, 어딘가에 활용하고 싶은 신것이라 생각하여 클래스 형태로 변경하였습니다. 다음의 이전 포스팅도 참조 하시면 도움이 됩니다.
그리고 텍스트 관련된 부분에 대해서도 참조 하시길 바랍니다.
그럼 추가적으로 코드에 대해서 한번 살펴보겠습니다. ( 이벤트 관련 연결된 함수만 살펴보겠습니다. 나머지 부분들은 구조적인 배치등임으로 생략하겠습니다.)
def Load(self): filename = filedialog.askopenfilename(initialdir="/", title="Select file", filetypes=(("text files", "*.txt"), ("all files", "*.*"))) print(filename) data=open(filename,'rt',encoding="utf-8") self.text.delete('1.0', END) self.text.insert(END,data.read()) | cs |
일단 파일 다이어로그를 통해서 불러오고자 하는 파일을 선택합니다. 그리고, 바로 open() 명령어를 통해서 불러오시면 됩니다. 이때, text에 출력하시기 전에 반드시 기존에 내용을 삭제하십니다. 그런 후에 다시 읽어올 데이터를 data.read()를 통해서 text에 insert해주시길 바랍니다. 이와 같은 과정으로 작업하시면 파일에 있는 내용을 출력해주게 됩니다.
혹 나머지 부분들에 대해서는 직접 채워보시는 것을 권장하면서 비워두었습니다.
혹시 추가적으로 궁금하신 점이나 문의 사항이 있으시면 댓글 및 방명록에 글 남겨주시길 바랍니다. 소중한 댓글에 원하시는 결과값이었으면 좋겠습니다. 감사합니다.
'Python > Python Tk (GUI)' 카테고리의 다른 글
파이썬[Python] 034 tkinter 활용 계산기 만들기 2부 - 이벤트 구성 (1) | 2020.01.07 |
---|---|
파이썬[Python] 033 tkinter 활용 계산기 만들기 1부 - GUI 구성 (0) | 2020.01.07 |
파이썬[Python] 030 tkinter 활용 Filedialog(Open, Save, Directory) (2) | 2020.01.04 |
파이썬[Python] 029 tkinter 기본강의 009 tkMessagebox 및 tkinter에 대한 생각 (0) | 2020.01.04 |
파이썬[Python] 028 tkinter 기본강의 008 Text, Spinbox (0) | 2020.01.03 |