我有一些相当简单的代码,我认为它可以正常工作,但是它没有按预期的方式工作,我要做的只是读取文本文件中的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()
它看起来相当简单,但仍然添加重复的行,我错过了什么吗?任何帮助表示赞赏。
答案 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的路径作为参数传递,而不是在函数中对其进行硬编码。这样一来,您的功能将更加通用。