my for loop doesn't work when i tried to make a user interface

Question:

I’m making a user interface but my for loop is not working. i wanted to say somthing when th username was alredy used butmy code yust skips the for loop and then append the username and password to the list. in the txt file stand in each line username;password


import tkinter as tk
from tkinter import *

root = Tk()

root.title("WRTS oefentoets")
root.geometry("735x355")

def sign():
  userfile = open("users.txt", "a+")
  users = list(userfile.readlines())
  
  found = 0
  for line in users:
    parts = line.split(";")
    
  
    if parts[0] == username.get():
      found = 1
      break;
      
  if found == 1:
    bestaatal.place(x= 300, y= 200)
  
  else:
    with open('users.txt', "a+") as file_object:
        # Move read cursor to the start of file.
        file_object.seek(0)
        # If file is not empty then append 'n'
        data = file_object.read()
        if len(data) > 0:
            file_object.write("n")
        # Append text at the end of file
        file_object.write(username.get() + ";" + password.get())

username = Entry(root, bg = 'black', fg = 'magenta')
password = Entry(root, bg = 'black', fg = 'magenta')
signin = Button(root, bg = 'black', fg = 'magenta', text = 'sign up', command = sign, width = 7)
signin.place(x= 343, y= 181)
username.place(x=262.5, y= 135)
password.place(x=262.5, y= 157.5)

Asked By: ik en ik

||

Answers:

.readlines on a file in append mode starts reading from the end of that file

So, since from userfile you’re only reading, just open it in read mode:

with open("users.txt", 'r') as userfile:
    ...  # your code
Answered By: Pignotto
Categories: questions Tags: , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.