python - 仅在没有重复项的情况下如何将行添加到文件中?
问题描述
我在 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))
问题是即使存在重复,该集合也会填充文件内容。如果地址不在文件中,如何仅添加到文件中?
解决方案
您的代码读取整个文件,而不是逐行读取。为此,您需要使用以下行创建您的集合:
调整:
seen = set()
seen.add(f.read())
和:
seen = set(f.read().split('\n'))