【发布时间】:2020-11-09 01:19:57
【问题描述】:
我有来自 API 的输入,我有一个 .txt 文件,并且我在文本文件中输入条目。并且我想检查并插入它,如果文件中已经存在该值,则不需要输入。
我正在尝试这个,但它每次运行时都会插入,
with open("path.txt", "r+") as myfile:
# for lines in myfile.read().split():
if cam_key not in myfile.readlines():
myfile.write(key + ",")
print("value adding ")
else:
print("value added")
请让我知道这里出了什么问题。 仅供参考(key 是来自 frm API 的值)
来自 api 的值: "Axx5RR000221AZ,Axx5RR000221QA"
新值: Axx5R000221SS
每次新值出现时都会像这样添加: Axx5RR000221AZ,Axx5RR000221QA,Axx5RR000221AZ,Axx5RR000221QA,Axx5R000221SS
如您所见,它在使用现有 + 新值时进行复制
【问题讨论】:
-
readlines() 返回一个数组,因此您可以完全匹配数组中的一个值,并且所有值都以
\n结尾,cam_key+'\n'也是如此,或者使用.read()仅获取一个字符串 -
您也在文件中添加“,”。你需要检查
key + "," in file.readlines()不是 ``` key in file.readlines()``` -
谢谢@KarthikRadhakrishnan 您的回复有效!!
标签: python string file string-matching