在添加之前检查文本文件中的条目

时间:2019-07-14 20:00:06

标签: python

我有一些相当简单的代码,我认为它可以正常工作,但是它没有按预期的方式工作,我要做的只是读取文本文件中的url,如果它不存在于tex文件中,我们可以添加它:< / p>

代码:

def verify_links_working(self, url):
    if url not in open("links/register.txt").read():
        with open("links/register.txt", "a+") as file:
            file.write("%s\n" % str(url).strip())
        file.close()

它看起来相当简单,但仍然添加重复的行,我错过了什么吗?任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:2)

您可以在同一个文件上进行读写,还可以使用strip清除url和txt中的url。由于不使用self,因此我通过添加static方法将其删除(假设您将该函数用作类函数:

@staticmethod
def verify_links_working(url):

    url_clean = url.strip()
    with open('links/register.txt', 'r+') as file:

        if url_clean not in {url.strip() for url in file}:
            file.write(f'{url_clean}\n')

更好的是,您可以将register.txt的路径作为参数传递,而不是在函数中对其进行硬编码。这样一来,您的功能将更加通用。