我是 python 的初學者,我試圖使用 tkinter 創建一個查看和編輯文本的程式。我使用 pyinstaller 制作了一個 .exe 檔案來查看文本,但是當我對文本檔案使用“打開方式”并選擇我的文本查看器程式時,什么也沒有顯示。
然后我注意到我的程式應該如何打開檔案并顯示其內容。因為最初我有這個按鈕“打開檔案”,當點擊它時,它會問我要打開什么,但現在在程式運行之前首先打開檔案,我無法點擊按鈕,所以我的程式不知道該怎么做. 我的程式有什么辦法知道我要打開什么嗎?我必須進口一些東西嗎?
感謝你的回答
from tkinter import *
from tkinter import filedialog
root=Tk()
def openfile():
textname=filedialog.askopenfilename(title="Open File", filetypes=(("Text", "*.txt"), ("Python", "*.py"), ("Html", "*.html"), ("All Files", "*.*")))
openedfile=open(textname,'r')
content=openedfile.read()
n_text.insert(END,content)
openedfile.close()
n_text=Text(root, font=11, relief=FLAT)
n_text.pack()
btn=Button(root, text="open", command=openfile).pack()
root.mainloop()
uj5u.com熱心網友回復:
不確定我是否很好地理解了你的問題。您需要知道要打開的檔案的路徑嗎?
from os.path import split
textname=filedialog.askopenfilename(title="Open File", filetypes=(("Text", "*.txt"), ("Python", "*.py"), ("Html", "*.html"), ("All Files", "*.*")))
pathname = split(textname)
#This print is just to show your path and filename
print("path:", pathname[0], "file:",pathname[1])
根據您的評論,我添加了一個新答案,它采用腳本引數的完整路徑。
from tkinter import *
from tkinter import filedialog
import sys
root=Tk()
def openfile():
textname=filedialog.askopenfilename(title="Open File", filetypes=(("Text", "*.txt"), ("Python", "*.py"), ("Html", "*.html"), ("All Files", "*.*")))
openedfile=open(textname,'r')
content=openedfile.read()
n_text.insert(END,content)
openedfile.close()
n_text=Text(root, font=11, relief=FLAT)
n_text.pack()
btn=Button(root, text="open", command=openfile).pack()
if len(sys.argv) == 2:
openedfile=open(sys.argv[1],'r')
content=openedfile.read()
n_text.insert(END,content)
openedfile.close()
root.mainloop()
我以這種格式添加了路徑:
c:/Users/user/Python/pruebas.py "C:\Users\user\Desktop\text_file.txt"
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/518298.html
上一篇:運行tkinter模塊失敗
