tkinter导入文件

自学tkinter,针对“文件导入”所走过的坑:
通过在网上查找,很容易找到filedialog为tkinter的文件导入模块,即from tkinter import filedialog,filedialog内置功能源文件写的很简洁就不多说了,这里要提的就是askdirectory,它只能记录到文件所在的文件夹。在此主要介绍askopenfilenames。

import tkinter as tk
from tkinter import filedialog
from main_program import Road_images
window = tk.Tk()

刚开始的写法

def open_file():
    filename = filedialog.askopenfilename(title='打开txt文件', filetypes=[('txt', '*.txt')])
    return filename
button_import = tk.Button(window, text="导入文件",command=open_file)
button_impprt.pack()

这样可以直接打开文件,非常方便,但我需要获取文件路径,于是加了一句

filename = open_file()

这样写就会引发一个很蛋疼的问题,就是刚运行程序时就会自动打开选择文件对话框,网上查半天依然找不到解决的办法,后面才想到借用Entry功能,完整代码如下:

import tkinter as tk
from tkinter import filedialog
window = tk.Tk()
window.geometry("500x300")
def open_file():
    filename = filedialog.askopenfilename(title='打开txt文件', filetypes=[('txt', '*.txt')])
    entry_filename.insert('insert', filename)
# 设置button按钮接受功能
button_import = tk.Button(window, text="导入文件", command=open_file).pack()
# 设置entry
entry_filename = tk.Entry(window, width=30, font=("宋体", 10, 'bold'))
entry_filename.pack()
# 尝试输出
def print_file():
    a = entry_filename.get()  #用get提取entry中的内容
    print(a)
tk.Button(window, text="输出", command=print_file).pack()
window.mainloop()

问题解决
注意1、由于在函数中调用了entry_filename.insert,因此entry_filename不能像button那样直接在后面接
pack()启用。
2、将文件名赋值出去时,尽量在函数内部进行,若文件名用的地方不多,建议全程直接采用函数,不必赋值出去,即:

# 尝试输出
def print_file():
    print(entry_filename.get())
tk.Button(window, text="输出", command=print_file).pack()
window.mainloop()

因为将文件名赋值出去后,容易出现值为空的情况,具体原因我也不清楚。

  • 6
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值