正在写入文件,如果行中有确切的名称,则。。。埃尔斯

2024-04-19 04:11:57 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的程序的一部分,它首先读取一个文件,检查用户提供的“名称”是否在文件中,如果在文件中,那么它将添加到行中,如果不是,那么它将开始一个新行。你知道吗

r = open("Class%s.txt"%(group),"r")
lines = r.readlines()
r.close()
for i, line in enumerate(lines):
    if name in line:
            lines[i] = line.strip() + "\t" + str(score) + "\n"
            break
else:
    lines.append("\n" + name + "\t" + str(score))
w = open("Class%s.txt"%(group),"w")
w.writelines(lines)
w.close()

我在这个程序中遇到的问题是,如果一个名为“Alexander”的用户在一个名为“Alex”的用户之前使用了这个程序,那么这个程序会将“Alex”的分数写在与“Alexander”相同的一行上,因为它会在每一行中搜索字符“Alex”,而不是是否完全匹配。谢谢你的帮助!你知道吗


Tags: 文件用户namein程序txtcloseline
2条回答

只要改变

if name in line:

if name in line.strip():

这样,您将查看单词列表,而不是字符列表。你将匹配完整的单词。你知道吗

我想每条线看起来都像

Alexander 25 31 19 16

我建议比较一下

if name.lower() == line.split(None, 1)[0].lower():

(与行的第一个单词进行比较,忽略大小写)。你知道吗

相关问题 更多 >