我正在创建一个简短的脚本,该脚本通过twitter API自动发推。除了设置API凭据(不在问题范围内)之外,我还导入以下库:
import os
我将工作目录设置为其中有3张照片的文件夹。如果运行os.listdir('.')
,将得到以下列表。
['Image_1.PNG',
'Image_2.PNG',
'Image_3.jpg',]
“ mylist”是一个字符串列表,实际上是3条tweet。
在Twitter中自动发布的代码如下:
for image in os.listdir('.'):
for num in range(len(mylist)):
api.update_with_media(image, mylist[num])
该代码基本上将第一条图片分配给tweet并发布。然后到同一张图片的第二条推文和帖子。再次是第一张图片-第三条推文。然后它继续循环至第二张和第三张图像总共3 * 3 9次/帖。
但是我想要实现的是用第一条推文并发布第一张照片。然后使用第二条推文拍摄第二张图片并发布。第三张图片-第三条推文。然后我想再运行一次循环:第一张图片-第一张Tweet,第二张图片-第二张Tweet ...等等。
使用zip
并行遍历两个(或多个)集合
for tweet, image in zip(mylist, os.listdir('.')):
api.update_with_media(image, tweet)
要重复多次,您可以将此循环放在另一个for
中
假设os.listdir('。')和mylist的长度相等:
length = len(mylist) # If len(os.listdir('.')) is greater than len(mylist),
# replace mylist with os.listdir('.')
imageList = os.listdir('.')
iterations = 2 # The number of time you want this to run
for i in range(0,iterations):
for x in range(0, length):
api.update_with_media(imageList[x], mylist[num])