我想在我的myWords.txt
文件中保存唯一的单词。我正在搜索一个单词,如果在文件中找到它,它不会写入它,但如果它找不到,它会写入该单词。问题是,当我第二次运行程序时,指针位于文件末尾,并从文件末尾开始搜索,然后再次写入上次写入的单词。我试图在某些位置使用seek(0)
,但不起作用。难道我做错了什么?将光标移至文件开头?
with open("myWords.txt", "r+") as a:
# a.seek(0)
word = "naughty"
for line in a:
if word == line.replace("\n", "").rstrip():
break
else:
a.write(word + "\n")
print("writing " +word)
a.seek(0)
break
a.close()
myWords.txt
awesome
shiny
awesome
clumsy
shiny
上运行的代码两次
myWords.txt
awesome
shiny
awesome
clumsy
shiny
naughty
naughty
是没有意义的break'后'把任何东西。你必须把它放在'break'之前 – furas
@furas谢谢。编辑。我也尝试过,但不起作用.. – Amar
我认为你有错误的缩进。你需要'for/else'构造,而不是'if/else' - 所以'else'必须在下面'' – furas