首页 > 解决方案 > 仅在没有重复项的情况下如何将行添加到文件中?

问题描述

我在 Python 中有这段代码,它在给定的文件中添加了一行。问题是我只想blazegraph_address 在文件中没有同一行时才添加它。如果有,我不需要将地址添加到文件中。其功能代码如下:

def write_to_address_file(blazegraph_address):
    address_path = open("./saved_info/saved_address.txt", "a")

    with open("./saved_info/saved_address.txt") as f:
        seen = set()
        seen.add(f.read())
        print("SEEN",seen)
        if blazegraph_address in seen:
            print("ADDRESS IN SET ALREADY")
        else:
            seen.add(blazegraph_address)
            address_path.write("\n"+str(blazegraph_address))


问题是即使存在重复,该集合也会填充文件内容。如果地址不在文件中,如何仅添加到文件中?

标签: pythonfileduplicatessetappend

解决方案


您的代码读取整个文件,而不是逐行读取。为此,您需要使用以下行创建您的集合:

调整:

seen = set()
seen.add(f.read())

和:

seen = set(f.read().split('\n'))

推荐阅读