我在这个问题上进行了6个多小时的尝试和测试,以找出问题所在。
该问题可能是针对初学者的,但我在互联网上找不到有关此问题的任何信息。我在此处制作了一个示例代码来仅显示问题。
当您在两个条目上都键入内容并单击按钮并打开创建的文本文件时。您可以看到它执行了预期的操作,但是当您再次单击时,将创建一个新行。在条目的末尾,您可以看到有一个空格并创建了新行。
我想删除条目末尾的空格,以创建新行。或者更好地解释它的原因以及如何使它变得更好。
我希望我把问题弄清楚了。
import tkinter as tk
from tkinter import *
import os
import subprocess
saved_data_textfile_name = "Saved data.txt"
app = tk.Tk()
font = ('Verdana', 17)
entry = tk.Entry(app, width=40, font=font)
entry2 = tk.Entry(app, width=40, font=font)
entry.pack(side="top")
entry2.pack(side="bottom")
button1 = tk.Button(app, text="save data", command=lambda: creating_file())
button1.pack(side="bottom")
def creating_file():
saved_data = open(saved_data_textfile_name, "w+")
data = entry.get()
data2 = entry2.get()
data3 = f"{data}\n{data2}"
saved_data.truncate(0)
saved_data.write(data3)
print("done")
command = '"{}" "{}" "{}"'.format(
sys.executable,
__file__,
os.path.basename(__file__),
)
app.quit()
subprocess.Popen(command)
def saved_data_from_relic():
if os.path.exists(saved_data_textfile_name):
f = open(saved_data_textfile_name)
lines = f.readlines()
asd = lines[0]
asd1 = lines[1]
entry.insert(0, asd)
entry2.insert(0, asd1)
f.close()
saved_data_from_relic()
app.mainloop()
问题是当您在函数saved_data_from_relic
中读取文件内容时,asd
将包含换行符。您可以做的一件事是读取全部内容,并使用splitlines
字符串方法来避免保留换行符。
# Change this line
lines = f.readlines()
# To
lines = f.read().splitlines()