Я создал бота в Твиттере для публикации описательных прилагательных из списка 3000. У меня возникли проблемы, когда он взломал sh с ошибкой Tweepy, сообщающей, что статус является дубликатом.
Мне кажется, что лучшим решением было бы удалить строку из текстового файла после печати. Каков наилучший способ реализовать это?
Вот основная часть кода, который я написал до сих пор:
import random
import tweepy
import time
from auth import consumer_secret, consumer_key, access_token_secret, access_token
api = tweepy.API(auth)
starttime = time.time()
while True:
file = open('words.txt', 'r')
random_word = random.choice(file.readlines())
tweet = ('The %s tree.' % random_word.strip())
api.update_status(status=tweet)
print('Tweeted: %s' % tweet)
time.sleep(1800.0 - ((time.time() - starttime) % 1800.0))
После внесения некоторых изменений по предложению sshashank124, это обновленный код:
from random import shuffle
import tweepy
import time
from auth import consumer_secret, consumer_key, access_token_secret, access_token
api = tweepy.API(auth)
starttime = time.time()
with open('words.txt', 'r') as f:
lines = [line.strip() for line in f.readlines()]
shuffle(lines)
for line in lines:
tweet = ('The {} tree.'.format(line))
api.update_status(status=tweet)
print('Tweeted: ', tweet)
time.sleep(1800.0 - ((time.time() - starttime) % 1800.0))
if __name__ == '__main__':
main()
Я убедился, что в файле, из которого читается программа, нет дубликатов.