关于tkinter读取文件名的问题
import tkinter as tkfrom tkinter import *
import openpyxl as xl
import datetime as tm
import xlwt
import os
win = tk.Tk()
win.title("管理系统")
win.geometry("800x700")
lb = tk.Label(win, text="请选择", bg="green", font=("宋体", 48), width=15, height=1)
lb.pack()
var1 = tk.StringVar()
lbox = tk.Listbox(win, listvariable=var1, font=("宋体", 24))
for i in os.listdir("D:\\例子\\"):# 获取文件夹名称加后缀
lbox.insert("end", i)
lbox.pack()
var2 = tk.StringVar
value = lbox.get(lbox.curselection())
var2.set(value)
def hit_queren():
pass
b1 = tk.Button(win, text="确认", font=("宋体", 26), width=15, height=1,
command=hit_queren)
b1.place(x=250, y=500)
win.mainloop()
想做一个直接向特定excel文件中插入内容的窗口,
首先要读取出文件夹中的文件,然后点击确认会弹出输入内容的子窗口
现在文件名用listdir方式读取后,想get到文件名,最后再把子窗口内容插入到get到指定文件名的excel中
结果报错tkinter.TclError: bad listbox index "": must be active, anchor, end, @x,y, or a number
是因为get不了后缀名称吗,如果是的话,如何只读取文件名称。。。。
或者说还有其他方法实现向多个excel文件中指定文件插入内容的方法?
求指教{:5_111:} StringVar 需要先实例化再使用,还有 lbox.curselection() 的返回值为空字符串 . zltzlt 发表于 2020-5-7 16:19
StringVar 需要先实例化再使用,还有 lbox.curselection() 的返回值为空字符串
新手,这样说不太明白额,方便直接写进去,然后我自己消化吗{:5_99:} import tkinter as tk
from tkinter import *
import openpyxl as xl
import datetime as tm
import xlwt
import os
win = tk.Tk()
win.title("管理系统")
win.geometry("800x700")
lb = tk.Label(win, text="请选择", bg="green", font=("宋体", 48), width=15, height=1)
lb.pack()
var1 = tk.StringVar()
lbox = tk.Listbox(win, listvariable=var1, font=("宋体", 24))
for i in os.listdir("D:\\例子\\"):# 获取文件夹名称加后缀
lbox.insert("end", i)
lbox.pack()
#var2 = tk.StringVar
#value = lbox.get(lbox.curselection())
#var2.set(value)
def hit_queren():
pass
b1 = tk.Button(win, text="确认", font=("宋体", 26), width=15, height=1,
command=hit_queren)
b1.place(x=250, y=500)
win.mainloop()
是不是 for i in os.listdir("D:\\例子\\"):# 获取文件夹名称加后缀
lbox.insert("end", i)
lbox.pack()
这样获取的列表含有后缀,影响
value = lbox.get(lbox.curselection())
的获取
怎样能获取不含后缀名的文件名列表呢? zltzlt 发表于 2020-5-7 16:19
StringVar 需要先实例化再使用,还有 lbox.curselection() 的返回值为空字符串
import tkinter as tk
from tkinter import *
import openpyxl as xl
import datetime as tm
import xlwt
import os
win = tk.Tk()
win.title("管理系统")
win.geometry("800x700")
var1 = tk.StringVar()
l = tk.Label(win,bg="yellow",width=4,textvariable=var1)
l.pack()
def pringt_selection():
value = lb.get(lb.curselection())
var1.set(value)
b1 = tk.Button(win,text="111",width=15,height=2,command=pringt_selection)
b1.pack()
var2=tk.StringVar()
#var2.set((11,22,33,44))
lb=tk.Listbox(win,listvariable=var2)
for i in os.listdir("D:\\例子\\"):
lb.insert("end",i)
lb.pack()
win.mainloop()
这样简化后发现能get出值来。。。。谢了,我在摸索摸索
页:
[1]