Я использую Twython, чтобы сделать бота, который отправляет случайное изображение из папки, вот код!используя случайные фотографии с Twython
from twython import Twython
import glob
import random
app_key = "XXX"
app_secret = "XXX"
oauth_token = "XXX"
oauth_token_secret = "XXX"
twitter = Twython(app_key, app_secret, oauth_token, oauth_token_secret)
def RandomImageTwitt(folder):
#Takes the folder where your images are as input
images = glob.glob(folder + "*")
image_open = open(images[random.randint(0,len(images))-1])
#Tweeting
image_ids = twitter.upload_media(media=image_open)
twitter.update_status(status='hello this is a status', media_ids=image_ids['media_id'])
RandomImageTwitt("/home/Pi/Bots/Pictures/")
Хорошо, и когда я использую питона script.py, то вернуть эту ошибку:
Traceback (most recent call last):
File "script.py", line 20, in <module>
RandomImageTwitt("/home/Pi/Bots/Pictures/")
File "script.py", line 14, in RandomImageTwitt
image_open = open(images[random.randint(0,len(images))-1])
IndexError: list index out of range
Я новичок в Python, если это может помочь, все мои файлы хранятся как это: 1.jpg, 2.jpg, 3.jpg ... все файлы находятся в jpg, и список начинается с 1.
Спасибо!
Почему вы не используете 'random.choice'? 'images [random.randint (0, len (images)) - 1]' → 'random.choice (images)', что предотвратит ошибку такого типа. – falsetru
Спасибо за повтор, поэтому я заменил 'image_open = open (images [random.randint (0, len (images)) - 1])' с 'image_open = random.choice (images)', я ничего не изменил, и я получаю эту ошибку: «Traceback (последний последний звонок): Файл« ewhring.py », строка 20, в RandomImageTwitt («/home/Pi/Bots/Pictures/») Файл« ewhring. py ", строка 14, в RandomImageTwitt image_open = random.choice (изображения) Файл« /usr/lib/python2.7/random.py », строка 275, по выбору return seq [int (self.random() * len (seq))] # вызывает IndexError, если seq пуст IndexError: индекс индекса вне диапазона –
Что вы получаете, если печатаете 'images'? Он пуст? – falsetru