python - 如果条件应该返回真,但返回假
问题描述
在这段代码中:
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
涉及字符串的第一个条件很好用;另一个涉及某种文件解析的失败。我在 Stack Overflow 上进行了搜索,人们似乎以同样的方式阅读文件。
解决方案
with open("config.txt", "a+") as fisierText:
:这会将文件指针移动到文件末尾。因此 afisierText.read()
不会读取任何内容,因此我将文件打开方式修改为with open("config.txt", "r") as fisierText:
.
推荐阅读
- c# - 为什么 LogStash 无法解析好的 Json
- java - 如何通过 spring.factories 将 SpringBootApp 迁移到库?
- c++ - 这两个版本的代码有什么区别?
- c# - C# Selenium 测试 - 如果没有标识符,如何按 enter/return 键?
- json - Apache Nifi 验证嵌套 Json
- mysql - 如何解决 MySQL 死锁
- javascript - 如何正确循环浏览来自 websocket 的 JSON 消息?
- c++ - 在 C++ 中将一个字母随机放入一个数组中
- jenkins - 在构建过程中从 Install Shield 项目创建安装程序失败
- python - 导入多个嵌套的 csv 文件并连接成一个 DataFrame