【问题标题】:How to avoid duplicate input to my text file in python如何避免在python中重复输入我的文本文件
【发布时间】: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


【解决方案1】:

试试这个:

with open("path.txt", "r+") as myfile:
    if cam_key not in myfile.read().split(","):
        myfile.write(key + ",")
        print("value adding ")
    else:
        print("value added")

【讨论】:

  • 嗨@John Ison,我试过这个,但仍然一次又一次地添加。我需要输入来自该 api 的值,用“,”分隔,但是当我检查时,我猜它无法检查字符串。
  • 嗨@John,感谢您的回复,我现在检查了,如果 cam_key + ',' 保留在我的文件中。正如 karthik 评论所建议的那样,我也必须检查“,”..
猜你喜欢
  • 2011-08-27
  • 2017-03-04
  • 2013-02-07
  • 1970-01-01
  • 1970-01-01
  • 2021-07-27
  • 1970-01-01
  • 2019-12-26
  • 2016-06-30
相关资源
最近更新 更多