对于循环周期顺序

问题描述 投票:0回答:2

我正在创建一个简短的脚本,该脚本通过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 ...等等。

python loops twitter
2个回答
1
投票

使用zip并行遍历两个(或多个)集合

for tweet, image in zip(mylist, os.listdir('.')):
    api.update_with_media(image, tweet)

要重复多次,您可以将此循环放在另一个for


1
投票

假设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])
© www.soinside.com 2019 - 2024. All rights reserved.