【问题标题】:How to open multiple CSV files from a folder one by one, the one admin wants如何从一个文件夹中一一打开多个 CSV 文件,一位管理员想要
【发布时间】:2020-08-19 11:52:20
【问题描述】:

我在一个目录中有多个 .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) 文件“C:\Users\Ahmad Jan Ahmadi\Desktop\FYP-11 Final\main.py”,第 438 行,在 open_att 中 Id = 行['Id'] TypeError: 字符串索引必须是整数

首先,我想问用户,当他选择其中一个时,你想打开哪个 .csv 文件,然后如何显示这个文件。

【问题讨论】:

  • 首先让我告诉场景:我的情况是,首先我想从文件夹中打开一个 csv 文件,然后我想提取它并在我的程序中使用它。代码详细信息:我打开了一个文件:file=filedialog.askopenfilename('directory',filetype(csv files)) 然后我读取了文件:a=Pd.read_csv(file)Print(a) 当我打印它给出我的结果,但你能告诉我如何提取这个文件(它是一个小文件 5x4)并在我的程序中使用..?

标签: python tkinter


【解决方案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")
       
       

【讨论】:

  • 感谢您的回答,但它不会像我使用 (filedialog.askonpenfilename()) 命令打开的那样打开文件文件夹。我想打开一个包含 csv 文件的文件夹并选择其中一个,然后提取它以便在 Tkinter 框架中显示它。让我告诉我要打开的文件夹,它打开但在提取时失败了我无法提取 csv 文件。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-03
  • 1970-01-01
  • 2021-11-14
  • 1970-01-01
  • 1970-01-01
  • 2021-11-24
相关资源
最近更新 更多