尝试通过 Python 3.6 中的文件对话框中的按钮获取所选文件的完整路径
Trying to get full path of a chosen file by button from filedialog in Python 3.6
键入 GUI 以进一步将其与另一部分代码合并。我一直坚持获取像 "x:/folder1/folder2/Sample.rar" 这样的文件的完整路径作为字符串。我需要将它放入 Label 或 Entry(无论如何,只是为了显示它已获取)并使用此字符串进行进一步输入,这将完成一些工作。
我试图将 is 作为 str 但没有得到任何结果。
期待学习制作字符串的方法。
import os
#import rarfile
import tkinter.messagebox
from tkinter import filedialog
from tkinter.filedialog import askopenfilename
from tkinter import *
from tkinter import ttk
from cgitb import text
window = Tk()
window.title("GUI")
window.geometry('430x500')
lbl3 = Label(window, text="Choose log archives: ", font='Trebushet 8')
lbl3.grid(column=0, row=10)
browseFile = Button(text="Browse files", font='Trebushet 8', width=15, command=lambda :
filedialog.askopenfilename(initialdir = "/",
title = "Seledct archives including logs",
filetypes = (("RAR files","*.rar"))))
browseFile.grid(column=0, row=11)
FileName = Label(window)
FileName.grid(column=0, row=12)
if browseFile:
print (str(FileName))
window.mainloop()
Copy comment:I have found an approach but Label is not callable.
def print_path():
f = tkinter.filedialog.askopenfilename( parent=window, initialdir='C:/', title='Choose file', filetypes=[("RAR files","*.rar"), ("all files","*.*")] ) print(str(FileName()))
browseFile = tkinter.Button(window, text='Browse file',
command=print_path)
browseFile.grid(column=0, row=11)
browseFile.pack(fill=FileName())
您忘记将 , 添加到文件类型 arg,请参见下文。
文件类型 = (("RAR files","*.rar"),)))
亲爱的朋友们。我已经定义了一个满足我要求的解决方案。这是 entry 的简单定义,使用 Entry 作为插入 str 的便捷方式。
def input():
input_path = filedialog.askopenfilename(initialdir="/", title="Open file",
filetypes=[("RAR files","*.rar"), ("all files","*.*")]
)
print(input_path)
input_entry.delete(1, END) # Remove current text in entry
input_entry.insert(0, input_path) # Insert the 'path'
button = Button(window, text='Choose a file', command=lambda : input())
button.grid(column=0, row=11)
Empty4 = Label(window)
Empty4.grid(column=0, row=12)
input_entry = Entry(window, text="")
input_entry.grid(column=0, row=13)
input_entry.focus_set()
input_entry.update()
非常感谢您在这里提出的想法和提示。
键入 GUI 以进一步将其与另一部分代码合并。我一直坚持获取像 "x:/folder1/folder2/Sample.rar" 这样的文件的完整路径作为字符串。我需要将它放入 Label 或 Entry(无论如何,只是为了显示它已获取)并使用此字符串进行进一步输入,这将完成一些工作。 我试图将 is 作为 str 但没有得到任何结果。 期待学习制作字符串的方法。
import os
#import rarfile
import tkinter.messagebox
from tkinter import filedialog
from tkinter.filedialog import askopenfilename
from tkinter import *
from tkinter import ttk
from cgitb import text
window = Tk()
window.title("GUI")
window.geometry('430x500')
lbl3 = Label(window, text="Choose log archives: ", font='Trebushet 8')
lbl3.grid(column=0, row=10)
browseFile = Button(text="Browse files", font='Trebushet 8', width=15, command=lambda :
filedialog.askopenfilename(initialdir = "/",
title = "Seledct archives including logs",
filetypes = (("RAR files","*.rar"))))
browseFile.grid(column=0, row=11)
FileName = Label(window)
FileName.grid(column=0, row=12)
if browseFile:
print (str(FileName))
window.mainloop()
Copy comment:I have found an approach but Label is not callable.
def print_path(): f = tkinter.filedialog.askopenfilename( parent=window, initialdir='C:/', title='Choose file', filetypes=[("RAR files","*.rar"), ("all files","*.*")] ) print(str(FileName())) browseFile = tkinter.Button(window, text='Browse file', command=print_path) browseFile.grid(column=0, row=11) browseFile.pack(fill=FileName())
您忘记将 , 添加到文件类型 arg,请参见下文。
文件类型 = (("RAR files","*.rar"),)))
亲爱的朋友们。我已经定义了一个满足我要求的解决方案。这是 entry 的简单定义,使用 Entry 作为插入 str 的便捷方式。
def input():
input_path = filedialog.askopenfilename(initialdir="/", title="Open file",
filetypes=[("RAR files","*.rar"), ("all files","*.*")]
)
print(input_path)
input_entry.delete(1, END) # Remove current text in entry
input_entry.insert(0, input_path) # Insert the 'path'
button = Button(window, text='Choose a file', command=lambda : input())
button.grid(column=0, row=11)
Empty4 = Label(window)
Empty4.grid(column=0, row=12)
input_entry = Entry(window, text="")
input_entry.grid(column=0, row=13)
input_entry.focus_set()
input_entry.update()
非常感谢您在这里提出的想法和提示。