私は現在、物事が私のテキストファイルに書き留められているかどうかを確認することにいくつか問題があります。(Tkinter/Python)テキストファイル内のものをチェックし、結果に基づいて異なる結果を得るにはどうすればいいですか?
私のコードでは、私は "1"が私のstorefile.txtファイルにあるかどうかをチェックします。 "1"がテキストファイルにない場合、ユーザが最初にコードを開いたことを通知すると、Tkinterはユーザの名前を尋ね、 "1"(ユーザがそのコードを前に開いたことを知らせる)を入れます。もしそうでなければ、Tkinterは "ようこそ"とユーザの入力した名前を言う。
しかし、最初のコードを開いた後でも、コードは "1"のように動作しますが、storefileにもありません。コードは私の名前を尋ねて「1」をもう一度印刷するので、私はstorefileに1以上の "1"があり、 "Welcome back" [name]ステージには到達しません。
import tkinter as tk
from time import time
from tkinter import *
root = Tk()
#FUNCTION FOR LABELS (not necessary but it condenses the code)
def label(a):
Label(root,text=a,font=("System",15,"bold"),fg="steelblue").pack()
#THIS IS FOR EXTRACTING SPECIFIC DATA FROM THE TEXTFILE
lines = [] #Declare an empty list named "lines"
def specify(x):
with open ('storefile.txt', 'rt+') as in_file: #Open file lorem.txt for reading of text data.
for line in in_file: #For each line of text store in a string variable named "line", and
lines.append(line) #add that line to our list of lines.
label(lines[x]) #print the list object.
#[x] allows us to print whatever line we want.
#############################
#THIS IS FOR THE 'ENTER NAME' BUTTON TO STORE NAMES
def store():
user_entry = distance_text_box.get()
f=open("storefile.txt", "a")
f.write (str(user_entry))
f.close()
#TITLE
label("[INSERT TITLE]")
#CHECKS IF THIS IS THEIR FIRST TIME ON THE APP. IF IT IS, PRINT DESCRIPTION AND ASKS FOR USERNAME
searchfile = open("storefile.txt", "r")
with open ('storefile.txt', 'rt+') as in_file: #Open file lorem.txt for reading of text data.
for line in searchfile: #For each line of text store in a string variable named "line", and
if "1" not in line:#IT STORES '1' IN THE TEXTFILE WHEN THE USER FIRST OPENS THE CODE, SO IF '1' ISN'T THERE, THE USER HAS NOT OPENED THE CODE YET
print("yes")
Label(root,text="ENTER NAME",font=("System",15,"bold"),fg="steelblue").pack(side=LEFT)#enter name label
distance_text_box = Entry(root, bd=1)
distance_text_box.pack()
searchfile = open("storefile.txt", "a")
searchfile.write("1\n")
searchfile.close()
Button(root, text ="Done!", command=lambda:store()).pack(side=RIGHT)
elif "1" in line:
print("no")
Label(root,text="Welcome back,").pack()
searchfile.close()
#PUT NAME IN TEXTFILE
root.mainloop()
既に開いているファイルに何かを書き込もうとしています。 – Lafexlos