【问题标题】:Python tkinter using variables and user input from GUI to run codePython tkinter 使用来自 GUI 的变量和用户输入来运行代码
【发布时间】:2018-07-25 20:14:23
【问题描述】:
from tkinter import *
import pandas as pd

def retrieve_input():
    file = textBox.get("1.0","end-1c")
    basefileread = pd.read_csv(str(textBox) + '.csv', encoding='latin-1')
    basefilevalue = basefileread.loc[basefileread['Customer'].str.contains('Lam DepT', na=False),'Jun-18\nQty']


master = Tk()
master.geometry('200x100')

textBox = Text(master, height=2, width=10)
textBox.pack()

button1 = Button(master,text="Get Value", command=lambda: retrieve_input())
button1.pack()

master.mainloop()

print(int(textBox)+10)

我正在尝试提取我放入文本框中的信息并运行以下代码,我想指定我希望程序读取哪个 csv 文件,并从该文件中找到我指定的值。我试图在我的熊猫阅读器的文本框中进行硬编码,但在提取我在 GUI 中键入的字符串信息并显示该字符串以便它可以运行我的代码时遇到了麻烦。我不确定我是否正确地表达了我的问题。当我运行它时,我得到了错误:

 FileNotFoundError: File b'.!text.csv' does not exist

【问题讨论】:

  • 您需要将 pandas 代码移动到 retrive_input 函数中,以便在单击按钮时运行它。该功能还需要您想对数据执行任何操作,我假设将其打印或将其添加到小部件以进行显示。
  • @Novel 好的,谢谢,但是我之前确实尝试过,并且得到了现在在我编辑的问题中发布的错误,所以我认为这是错误的方法。知道为什么我会收到此错误吗?
  • 您希望将保存的名称加载到变量“文件”中。所以basefileread = pd.read_csv(file+'.csv', encoding='latin-1')。还记得添加打印或其他内容,以便您看到结果。
  • 无关,但是那个 lambda 函数没用。只需传递要直接执行的函数。 button1 = Button(master,text="Get Value", command=retrieve_input)
  • @Novel 效果很好!感谢您的帮助,意义重大。

标签: python pandas file tkinter


【解决方案1】:

问题在于retriece input() 函数
您将文本检索到变量file,但使用str(textBox) 读取文件

解决方案应该像这样工作

def retrieve_input():
    file = textBox.get("1.0","end-1c")
    basefileread = pd.read_csv(file +'.csv', encoding='latin-1')
    basefilevalue = basefileread.loc[basefileread['Customer'].str.contains('Lam DepT', na=False),'Jun-18\nQty'

【讨论】:

  • 大声笑,业力小偷。
  • 答案是同时的,sry °_°^
猜你喜欢
  • 2018-09-14
  • 2016-04-21
  • 1970-01-01
  • 1970-01-01
  • 2020-10-27
  • 2017-02-18
  • 1970-01-01
  • 2021-05-15
  • 2014-03-05
相关资源
最近更新 更多