组织文本输出

时间:2019-07-20 09:10:54

标签: python-3.x variables text store organizer

我在理解如何控制文本文件中字符串输出方面遇到问题。我创建了一个函数,该函数在Tkinter的整个条目中收集来自用户的所有输入。然后将这些变量发送到另一个函数,该函数创建一个文本文件并附加信息。

我尝试过用Google搜索任何解决方案,但没有运气或无法理解其他解决方案。您看到的代码占整体代码的1%,这就是为什么它看起来很奇怪的原因。

from tkinter import *
from tkinter import ttk
import sqlite3
import webbrowser

root = Tk()
root.geometry('1030x400')
Label(root, bg="black").place(x=0, y=0)

fname = StringVar(root, value="Your first name")
lastname = StringVar(root, value="Your last name")


def personal_info():
    persinf = Toplevel(root)
    persinf.geometry('800x500')
    persinf.configure(background="light blue")
    ttk.Entry(persinf, textvar=fname).place(x=40, y=110)
    ttk.Entry(persinf, textvar=lastname).place(x=240, y=110)
    Button(persinf, text='Save', width=15, bg='brown', fg='black', command=personal_save).place(x=580, y=450)


def personal_save():
    with open('Personal information.txt', 'a') as f:
        f.write(fname.get())
        f.write(lastname.get())


Button(root, text='Add personal information', width=25, bg='brown', fg='black', command=personal_info).\
    place(x=50, y=200)

root.mainloop()

我的代码生成的文本文件是: 例如:      山姆·丹尼尔森 问题:文本输出全部放在一起。

我想要实现的是分离输出: 名:Sam 姓氏:Danielsen

1 个答案:

答案 0 :(得分:0)

您可以先形成要保存的行,然后将其添加到文本文件中;可能是这样的:

from tkinter import *
from tkinter import ttk
import sqlite3
import webbrowser

root = Tk()
root.geometry('1030x400')
Label(root, bg="black").place(x=0, y=0)

fname = StringVar(root, value="Your first name")
lastname = StringVar(root, value="Your last name")


def personal_info():
    persinf = Toplevel(root)
    persinf.geometry('800x500')
    persinf.configure(background="light blue")
    ttk.Entry(persinf, textvar=fname).place(x=40, y=110)
    ttk.Entry(persinf, textvar=lastname).place(x=240, y=110)
    Button(persinf, text='Save', width=15, bg='brown', fg='black', command=personal_save).place(x=580, y=450)


def personal_save():
    with open('Personal information.txt', 'a') as f:
        line = f'{fname.get()}, {lastname.get()}\n'
        f.write(line)

Button(root, text='Add personal information', width=25, bg='brown', fg='black', command=personal_info).\
    place(x=50, y=200)

root.mainloop()

Personal information.txt

Reblochon, Masque
Arash, Mithraian
Asdo, de Merck