Извините, если название немного сбивает с толку, я не знал, как это лучше выразить.
У меня возникла следующая проблема: я использую функцию filedialog Tkinter, чтобы выбрать несколько CSV-файлов после нажатия кнопки, и затем я обрабатываю эти файлы, чтобы получить несколько значений в качестве кадров данных pandas.После этого я хочу использовать эти фреймы данных pandas в функции, которая будет использоваться для другой кнопки, но я не могу вывести эти фреймы данных за пределы их начальной функции.Одна из основных проблем, которую я пытаюсь сделать, заключается в том, что из-за используемого цикла for, информационный кадр перезаписывается каждый раз, когда цикл повторяется, поэтому я обычно получаю только последний rt.Идеальным вариантом было бы иметь возможность поместить функцию, которую вторая кнопка (convItol) будет вызывать, в функцию выбора (ту, которая используется для загрузки файлов), но я не знаю, можно ли это сделать таким образом.
Вот мой код:
from tkinter import *
from tkinter import filedialog
import glob, os
from pandas import *
import matplotlib.pyplot as plt
from scipy import stats
import ntpath
import sqlite3
import pandas as pd
#create window
window=Tk()
#textlist
screen=Listbox(window, height=10, width=50)
screen.grid(column=0, row=1, rowspan=4, columnspan=8)
#scrollbar
scrollbar=Scrollbar(window)
scrollbar.grid(row=2, column=8, sticky=S+N)
screen.configure(yscrollcommand=scrollbar.set)
scrollbar.configure(command=screen.yview)
#separator for the buttons
separator=Frame(height=2,bd=1, relief=SUNKEN)
separator.grid(row=2,column=20)
#selectfiles
def select():
selector=filedialog.askopenfilenames(parent=window,
initialdir="/", title="Upload")
for file in selector:
filename=ntpath.basename(file)
rt=pandas.read_csv(file, skiprows=6)
rt.set_index('Peak')
#rt is the pandas dataframe that I want to use in another function
#select button:
browse=Button(separator, text="Browse", command=select, width=10)
browse.grid(row=0, column=1)
#Conversion ITol function
def ConversionItol():
#here is where I would like to use the rt pandas dataframe
#Itol conversion Button
convItol=Button(separator, text="Conversion ITol", command=ConversionItol)
convItol.grid(row=1,column=1)
convSty=Button(separator, text="Conversion Sty")
convSty.grid(row=2, column=1)
window.mainloop()
Заранее спасибо.