![](/img/trans.png)
[英]How to get the pure file path from tkinter's filedialog.askopenfile()?
[英]how to get filename from TkInter filedialog.askopenfile from a button command
我對 python 很陌生,對 Tkinter 更陌生。 對於我可能在這里做的任何明顯錯誤,提前抱歉......
class application():
def __init__(self):
self.root = Tk()
frameCSV = LabelFrame(self.root)
Button(frameCSV, text="browse csv", command= self.browseCSV)
Label(frameCSV,text=csvFilename ,bg='white').grid(row =1,column=1)
def browseCSV(self):
global csvFilename
csvFilename = filedialog.askopenfilename( initialdir="/Volumes/", title="select the file", filetypes=[("CSV files", ".csv"),("all files", "*.*")] )
frameCSV
是我的根窗口中的一個框架。 我想在這個框架內添加一個帶有所選文件返回路徑的Label
。
但它不起作用!
Traceback (most recent call last):
File "/Users/guillaume/Downloads/uploader_v1_0_200312.py", line 106, in <module>
f=application()
File "/Users/guillaume/Downloads/uploader_v1_0_200312.py", line 70, in __init__
Label(frameCSV,text=csvFilename ,bg='white').grid(row =1,column=1)
NameError: name 'csvFilename' is not defined
我究竟做錯了什么? 我不明白為什么該函數不將 PATH 傳遞給Label
以顯示它。
非常感謝你的幫助。
如果您希望在browseCSV()
選擇文件后更新標簽,則需要將StringVar
關聯到標簽,然后在browseCSV()
更新它:
class application():
def __init__(self):
self.root = Tk()
self.csvFilename = StringVar() # use instance variable
...
Label(frameCSV, textvariable=self.csvFilename, bg='white').grid(row=1, column=1)
...
def browseCSV(self):
filename = filedialog.askopenfilename(initialdir="/Volumes/", title="select the file",
filetypes=[("CSV files", ".csv"),("all files", "*.*")])
if filename:
# a filename is selected, so update the label via StringVar
self.csvFilename.set(filename)
但是,我在 SublimeText 中進行構建時收到此消息:objc[3025]: Class FIFinderSyncExtensionHost 在 /System/Library/PrivateFrameworks/FinderKit.framework/Versions/A/FinderKit (0x7fff85a04cd0) 和 /System/Library/PrivateFrameworks 中實現/FileProvider.framework/OverrideBundles/FinderSyncCollaborationFileProviderOverride.bundle/Contents/MacOS/FinderSyncCollaborationFileProviderOverride (0x10c6e1cd8)。 將使用兩者之一。 哪個是未定義的
這是否意味着我應該擔心什么?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.