我在一个目录中有多个.csv文件,我想根据用户/管理员的需求一个一个地打开它们。当他打开文件时,它以表格格式显示在Tkinter界面上。
def open_att():
..........
filename = filedialog.askopenfilename(initialdir="C:/Users/Ahmad Jan Ahmadi/Desktop/FYP-11 Final/Attendance/",title="Select Attendance File",filetypes=(("Csv Files","*.csv"),("All Files","*.*")))
attend= pd.read_csv(filename)
for row in attend:
Id = row['Id']
name = row['Name']
date = row['Date']
time = row['Time']
tree.insert("", 100000, values=(Id, name, date,time))
运行此程序时,出现以下错误:
Tkinter回调中的异常 追溯(最近一次通话): 在“ 调用”中的文件“ C:\ Users \ Ahmad Jan Ahmadi \ AppData \ Local \ Programs \ Python \ Python36-32 \ lib \ tkinter_ init _。py”,行1699 > 返回self.func(* args) 在open_att中的文件“ C:\ Users \ Ahmad Jan Ahmadi \ Desktop \ FYP-11 Final \ main.py”,行438 ID =行['Id'] TypeError:字符串索引必须为整数
首先,我想问用户选择其中一个时要打开哪个.csv文件,然后如何显示该文件。
答案 0 :(得分:1)
我在手机上采用了这种快速方法,几乎不需要优化
import os
import glob
os.chdir("/mydir")
extension = 'csv'
all_filenames = [i for i in glob.glob('*.{}'.format(extension))]
for name in all_filenames:
pattern = input("enter your desired file name: ")
if pattern == name:
file = name.readlines()
print(file)
else:
print("file does not exist")