我正在创建一个简短的脚本,该脚本通过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次/帖。
不过,我要实现的是使用第一条推文并发布第一张照片。然后使用第二条推文拍摄第二张图片并发布。第三张图片-第三条推文。然后我想再运行一次:第一张图片-第一张鸣叫,第二张图片-第二张鸣叫...等等。
答案 0 :(得分:1)
使用zip
并行遍历两个(或更多)集合
for tweet, image in zip(mylist, os.listdir('.')):
api.update_with_media(image, tweet)
要重复多次,可以将此循环放在另一个for
答案 1 :(得分:1)
假设os.listdir('。')和mylist的长度相等:
private func constructQuestionViewCell(_ cell: QuestionViewCell, withQuestion question: SurveyQuestion? = nil) -> QuestionViewCell {
cell.questionTitle.text = question?.title
cell.questionTitle.numberOfLines = 0
cell.questionTitle.sizeToFit()
if (question?.type == "number_list") {
let options = question?.values ?? [" ", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10"]
let picker = CustomPickerView(frame: .zero, textView: cell.questionResponse, options: options)
cell.questionResponse.inputView = picker
picker.reloadAllComponents()
}
return cell
}