python - 使用 Tkinter 将用户输入导出到 .csv 文件

标签 python csv python-2.7 tkinter

我有一个 tkinter 代码设置,它将为用户提供七个输入提示和一个“提交”按钮。我希望能够将用户在输入框中键入的任何内容导出到 .csv 文件。我使用了 Python tkinter 文档和许多其他资源,包括这个网站,但找不到答案。这是我到目前为止的代码:

import Tkinter 
from Tkinter import *
from ttk import *
import csv

class App(Frame):
    def tile():
        Label(text='Enter Information Below').pack(side=TOP,padx=15,pady=15)

def output(self):
    with open('WorkOrderLog.csv', 'a') as f:
        w=csv.writer(f, quoting=csv.QUOTE_ALL)

        Label(text='Name:').pack(side=LEFT,padx=5,pady=5)
        Entry(root, width=10).pack(side=LEFT,padx=5,pady=5)

        Label(text='1:').pack(side=LEFT,padx=5,pady=5)
        Entry(root, width=10).pack(side=LEFT,padx=5,pady=5)

        Label(text='2:').pack(side=LEFT,padx=5,pady=5)
        Entry(root, width=10).pack(side=LEFT,padx=5,pady=5)

        Label(text='3:').pack(side=LEFT,padx=5,pady=5)
        Entry(root, width=10).pack(side=LEFT,padx=5,pady=5)

        Label(text='4:').pack(side=LEFT,padx=5,pady=5)
        Entry(root, width=10).pack(side=LEFT,padx=5,pady=5)

        Label(text='5:').pack(side=LEFT,padx=5,pady=5)
        Entry(root, width=10).pack(side=LEFT,padx=5,pady=5)

        Label(text='6:').pack(side=LEFT,padx=5,pady=5)
        Entry(root, width=10).pack(side=LEFT,padx=5,pady=5)

        Button(root, text='Submit', command=w.writerow([Entry,Entry,Entry,Entry,Entry,Entry,Entry])).pack(side=RIGHT,padx=5,pady=5)

def __init__(self, master=None):
    Frame.__init__(self, master)
    self.pack()
    self.output()

root=Tk()
root.title('Auto Logger')
root.geometry('1000x100')
app=App(master=root)
app.mainloop()
root.mainloop()

我迷失了从这里去哪里。我研究了如何使用“get()”函数,因为这似乎是一个常见的答案,但我对 tkinter 的了解有限。非常感谢任何帮助。

最佳答案

您使用 get() 的方法正确,它将返回 tkinter Entry 小部件的内容。

我使用了一个 Entry 来说明如何完成从 Entry 小部件中检索文本并将内容写入 .csv 文件。

from tkinter import * 
import csv

class App(Frame):
    def __init__(self, master=None):
        Frame.__init__(self, master)
        self.pack()
        self.output()

    def output(self):
        Label(text='Name:').pack(side=LEFT,padx=5,pady=5)
        self.e = Entry(root, width=10)
        self.e.pack(side=LEFT,padx=5,pady=5)

        self.b = Button(root, text='Submit', command=self.writeToFile)
        self.b.pack(side=RIGHT,padx=5,pady=5)

    def writeToFile(self):
        with open('WorkOrderLog.csv', 'a') as f:
            w=csv.writer(f, quoting=csv.QUOTE_ALL)
            w.writerow([self.e.get()])

if __name__ == "__main__":
    root=Tk()
    root.title('Auto Logger')
    root.geometry('1000x100')
    app=App(master=root)
    app.mainloop()
    root.mainloop()

通过创建条目并将其分配给 self.e,您可以通过调用 App 类的 writeToFile 函数中的 self.e.get() 来访问文本值。

关于python - 使用 Tkinter 将用户输入导出到 .csv 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18339893/

相关文章:

python - 在 python 中使用 cv2 模块查看二进制图像之类的图像(进入循环)

python - Pandas groupby 保持顺序

mysql - 有选择地从 CSV 读取到 MySQL

python-2.7 - 如何在Qt Label中显示图片?

python - 艰难地学习 Python 练习 48 帮助

excel - 有没有办法将范围批量写入文本/CSV 文件?

python - 从 Tcl 字典获取 Python 字典

python - Boto3 Athena 未显示所有表格

python - 按周分组一个 Dataframe

java - 如何比较两个不同大小的 Csv 文件之间的值?