我正在使用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/")
好吧,當我使用Python 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'? '圖像[random.randint(0,len(images)) - 1]'→'random.choice(images)'這將防止這種索引錯誤。 – falsetru
感謝您的重播,所以我用'image_open = random.choice(images)'替換了'image_open = open(images [random.randint(0,len(images)) - 1])'',我得到這個錯誤:'追溯(最近一次調用最後): 文件「ewhring.py」,第20行,在 RandomImageTwitt(「/ home/Pi/Bots/Pictures /」) 文件「ewhring。 py「,第14行,在RandomImageTwitt image_open = random.choice(images) 文件」/usr/lib/python2.7/random.py「,第275行,在選擇 return seq [int(self.random() * len(seq))]#如果seq爲空,則引發IndexError IndexError:列表索引超出範圍' –
如果打印'images',會得到什麼結果?它是空的嗎? – falsetru