d = feedparser.parse('somerssfeed/rss.xml')
message = {}
smessage = {}
for post in d.entries:
message[post.link] = post.title
fwrite = open("db.txt", "a")
for k, v in message.items():
if k in open("db.txt", "r"):
print("already exists")
else:
fwrite.write("\n" + "{0}".format(k) + "\n")
smessage[k] = v
Ce que je veux réaliser est l'analyse des flux RSS et écrire leurs liens dans un fichier texte. Mais le problème est quand je cours le manuscrit la prochaine fois qu'il ne devrait pas renvoyer de vieux articles de rss ainsi je les compare par l'intermédiaire du dossier de texte sauf qu'il échoue. Le premier terme, il écrit tous les liens, deuxième manche, il devrait revenir à vide parce que tous les liens sont les mêmes, mais il écrit à nouveau les mêmes liensPython et comparaison des modifications de fichier
EDIT:
après une journée de tâtonnement cela a fonctionné:
for k, v in message.items():
if k in open('db.txt').read():
print('already exists')
else:
smessage[k] = v
fwrite = open("db.txt", "a")
fwrite.write('\n{0}\n'.format(k))
fwrite.close()
Bienvenue à SO. S'il vous plaît, prenez le temps de lire [ask] et les liens qu'il contient. – wwii
En aparté: Puisque vous utilisez déjà 'str.format' -' ("\ n" + "{0}". Format (k) + "\ n") 'peut aussi être écrit comme' ("\ n {0} \ n ".format (k))'. – wwii