让用户自己选择文件路径——以窗口形式
【摘要】 对于一些人来说,可视化操作可能比较重要from tkinter import *import tkinter as tkimport tkinter.filedialogfrom PIL import Image, ImageTk# 选择并显示图片def choosepic(): path_ = tkinter.filedialog.askopenfilename() # 返回一个文...
对于一些人来说,可视化操作可能比较重要
from tkinter import *
import tkinter as tk
import tkinter.filedialog
from PIL import Image, ImageTk
# 选择并显示图片
def choosepic():
path_ = tkinter.filedialog.askopenfilename() # 返回一个文件路径的字符串
path.set(path_)
# print(path)
img_open = Image.open(entry.get())
# img = ImageTk.PhotoImage(img_open.resize((400,400)))
img = ImageTk.PhotoImage(img_open)
lableShowImage.config(image=img)
lableShowImage.image = img
if __name__ == '__main__':
# 生成tk界面 app即主窗口
app = tk.Tk()
# 修改窗口titile
app.title("显示图片")
# 设置主窗口的大小和位置
app.geometry("700x400")
# Entry widget which allows displaying simple text.
a = tk.Label(app, text='请选择显示的图片:')
a.pack()
path = tk.StringVar()
entry = tk.Entry(app, state='readonly', text=path, width=80)
entry.pack()
# 使用Label显示图片
lableShowImage = tk.Label(app)
lableShowImage.pack()
# 选择图片的按钮
buttonSelImage = tk.Button(app, text='选择图片', command=choosepic)
buttonSelImage.pack()
# buttonSelImage.pack(side=tk.BOTTOM)
# Call the mainloop of Tk.
app.mainloop()
上面这种方法是使用tkinter
生成窗口,path_ = tkinter.filedialog.askopenfilename()
获取选择的文件及路径,如下:
import tkinter
path = tkinter.filedialog.askopenfilename()
print(path)
filedialog后面可以接这些参数,比如askdirectory()
只能选择文件夹,返回选择文件夹的路径。
["FileDialog", "LoadFileDialog", "SaveFileDialog",
"Open", "SaveAs", "Directory",
"askopenfilename", "asksaveasfilename", "askopenfilenames",
"askopenfile", "askopenfiles", "asksaveasfile", "askdirectory"]
path = tkinter.filedialog.askdirectory()
print(path)
总的来说,文件对话框在 GUI 程序中经常的使用到,比如上传文档需要从本地选择一个文件,包括文件的打开和保存功能都需要一个文件对话框来实现。Tkinter 提供文件对话框被封装在tkinter.filedailog模块中,该模块提供了有关文件对话框的常用函数,经常使用的有以下几个:
方法 | 说明 |
---|---|
Open() | 打开个某个文件 |
SaveAs() | 打开一个保存文件的对话框 |
askopenfilename() | 打开某个文件,并以包函文件名的路径作为返回值 |
askopenfilenames() | 同时打开多个文件,并以元组形式返回多个文件名 |
askopenfile() | 打开文件,并返回文件流对象 |
askopenfiles() | 打开多个文件,并以列表形式返回多个文件流对象 |
asksaveasfilename() | 选择以什么文件名保存文件,并返回文件名 |
asksaveasfile() | 选择以什么类型保存文件,并返回文件流对象 |
askdirectory() | 选择目录,并返回目录名 |
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)