首页 > 解决方案 > 在添加之前检查文本文件中的条目

问题描述

我有一些我认为可以工作的相当简单的代码,但它没有按应有的方式执行,我所做的只是读取一个文本文件以获取 url,如果它在 tex 文件中不存在,我们添加它:

代码:

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()

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

标签: python

解决方案


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

@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,而不是在函数中对其进行硬编码。因为你的功能会更通用。


推荐阅读