Если условие должно возвращать true, но возвращает false - PullRequest
0 голосов
/ 27 января 2020

В этом коде:

import tkinter as tk
root = tk.Tk()
root.geometry("250x400")
patternIntrare="0000000001"
patternIntrariGol="0000000000"
patternMatrice="1100000\n0000000\n0000000\n0000000\n0000000"

def function():
    with open("config.txt", "a+") as fisierText:
            if patternIntrare==patternIntrariGol:
                tk.messagebox.showerror("Eroare", "Nu ati ales nicio intrare pe vectorul de modele!")
            else:
                if patternMatrice in fisierText.read():
                    tk.messagebox.showwarning("Atentie", "Acest model exista deja in baza de date!")
                else:
                    tk.messagebox.showinfo("Nice", "E ok")

save=tk.Button(text="SAVE", command=function)
save.place(x=10, y=365)                

root.mainloop()                

Почему это работает:

if patternIntrare==patternIntrariGol:
                tk.messagebox.showerror("Eroare", "Nu ati ales nicio intrare pe vectorul de modele!")

А это не так:

if patternMatrice in fisierText.read():
                    tk.messagebox.showwarning("Atentie", "Acest model exista deja in baza de date!")

Информация о файле такая:

1100000
0000000
0000000
0000000
0000000
0100000000

1100000
0000000
0000000
0000000
0000000
0100000000

1100000
0000000
0000000
0000000
0000000
0100000000

Я думаю, что проблема в чтении файла, потому что первое if условие, которое включает строки, работает хорошо; другой, который включает в себя какой-то синтаксический анализ файла, терпит неудачу. Я искал в переполнении стека, и люди, кажется, читают файлы одинаково.

1 Ответ

0 голосов
/ 28 января 2020

with open("config.txt", "a+") as fisierText:: это переместит указатель файла в конец файла. Поэтому fisierText.read() будет читать ничего , поэтому я изменил открытие файла на with open("config.txt", "r") as fisierText:.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...