from tkinter import filedialog, Label, Button, Entry, StringVar
from tkinter.filedialog import askopenfile
import pandas as pd
root = tk.Tk()
Label(root, text='File Path').grid(row=0, column=0)
v = StringVar()
entry = Entry(root, textvariable=v).grid(row=0, column=1)
Button(root, text='Browse Data Set',command=lambda: v.set(askopenfile())).grid(row=1, column=0)
Button(root, text='Close',command=root.quit()).grid(row=1, column=1)
root.file = v.get()
df = pd.read_csv(root.file)
root.mainloop()
ich einen Datensatz (CSV-Datei) auf dem Klick auf eine Schaltfläche öffnen möchten, und lesen Sie es mit pd.read_csv()
Funktion ich einige Fehler bin immerÖffnen und eine CSV-Datei von Tkinter GUI read_csv Lesen
Traceback (most recent call last):
File "/home/abishek/PycharmProjects/untitled1/temp.py", line 21, in <module>
df = pd.read_csv(root.file)
File "/usr/lib/python3/dist-packages/pandas/io/parsers.py", line 498, in parser_f
return _read(filepath_or_buffer, kwds)
File "/usr/lib/python3/dist-packages/pandas/io/parsers.py", line 275, in _read
parser = TextFileReader(filepath_or_buffer, **kwds)
File "/usr/lib/python3/dist-packages/pandas/io/parsers.py", line 590, in __init__
self._make_engine(self.engine)
File "/usr/lib/python3/dist-packages/pandas/io/parsers.py", line 731, in _make_engine
self._engine = CParserWrapper(self.f, **self.options)
File "/usr/lib/python3/dist-packages/pandas/io/parsers.py", line 1103, in __init__
self._reader = _parser.TextReader(src, **kwds)
File "pandas/parser.pyx", line 353, in pandas.parser.TextReader.__cinit__ (pandas/parser.c:3246)
File "pandas/parser.pyx", line 591, in pandas.parser.TextReader._setup_parser_source (pandas/parser.c:6111)
OSError: File b'' does not exist
Process finished with exit code 1
Bitte helfen Sie mir mit diesem: ich bin
tkinter ich den ersten Teil getan haben jetzt habe ich ein anderes Problem
1.Ich eine Datei durchsucht 2.I wird erhält die Spalten des Datenrahmen list(df)
mit und ich wollte es angezeigt, um es in einem Optionsmenü ich es mit dem folgenden Code tue
import tkinter as tk
from tkinter.filedialog import askopenfilename
import pandas as pd
root = tk.Tk()
v = tk.StringVar(root)
v1 = tk.StringVar(root)
v2 = tk.StringVar(root)
v3 = tk.StringVar(root)
df = pd.DataFrame()
col = []
ss = ['a','b','c','d','e']
def get_data_frame():
global v
global df
global col
file_name = askopenfilename()
v.set(file_name)
df = pd.read_csv(file_name)
col = list(df)
print(col)
def fill():
return list(df)
tk.Label(root, text='File Path').grid(row=0, column=0)
entry = tk.Entry(root, textvariable=v).grid(row=0, column=1)
tk.Button(root, text='Browse Data Set', command=get_data_frame).grid(row=0, column=3)
tk.Label(root, text='Class LabelAttribute').grid(row=1, column=0)
tk.OptionMenu(root,v1,*col).grid(row=1, column=1)
v1.set('Nil')
tk.Label(root, text='Row Counter Attribute').grid(row=2, column=0)
v2.set('Nil')
tk.OptionMenu(root,v2,*col).grid(row=2, column=1)
tk.Button(root, text='Close', command=root.destroy).grid(row=5, column=3)
tk.Entry(root, textvariable=v3).grid(row=6, column=0)
tk.Button(root, text='Setter', command=lambda: v3.set(type(col[0]))).grid(row=6, column=1)
v3.set(col)
root.mainloop()
print(col)
aber Python wird folgenden Fehler
Traceback (most recent call last):
File "/home/abishek/PycharmProjects/untitled1/GUI.py", line 34, in <module>
tk.OptionMenu(root,v1,*col).grid(row=1, column=1)
TypeError: __init__() missing 1 required positional argument: 'value'
jeder Code, bevor 'root.mainloop' kommt führt sofort nach dem Start des Programms, so dass der Benutzer hat keinerlei Zeitdaten in den Entry einzugeben oder Ihre Schaltflächen klicken. 'root.file = v.get()' weist 'root.file' einen leeren String zu. Wenn Sie möchten, dass Code ausgeführt wird, nachdem der Benutzer die Eingabe eingegeben hat, müssen Sie ihn in eine Funktion einfügen und ihn als Callback mit 'command =' oder '.bind' registrieren. – Kevin