我正在构建一个 Instagram 上传机器人。函数 upload
应接收图像位置,然后继续上传。我面临的问题是,遍历图像列表中每个单独元素的循环会打印回数字,而不是字符串。
我已将代码隔离为:
print(col)
for i in col:
print(i)
注意:在理想情况下,print(i) 将替换为 upload(i)
输出:
['C:\\Users\\aa\\Desktop\\Programming\\Instagram\\media\\pexels-eberhard-grossgasteiger-1612360.jpg', 'C:\\Users\\aa\\Desktop\\Programming\\Instagram\\media\\pexels-northwoods-murphy-1878810.jpg', 'C:\\Users\\aa\\Desktop\\Programming\\Instagram\\media\\pexels-stein-egil-liland-3510717.jpg']
[[[235 229 229]
[235 229 229]
[235 229 229]
...
[239 233 235]
[239 233 235]
[239 233 235]]
[[235 229 229]
[235 229 229]
[235 229 229]
...
[239 233 235]
[239 233 235]
[239 233 235]]
[[235 229 229]
[235 229 229]
[235 229 229]
...
[239 233 235]
[239 233 235]
[239 233 235]]
...
[[ 59 51 38]
[ 60 52 39]
[ 61 53 40]
...
[159 144 137]
[133 118 113]
[115 100 95]]
[[ 58 50 37]
[ 58 50 37]
[ 58 50 37]
...
[143 128 121]
[132 117 112]
[100 85 80]]
[[ 58 50 37]
[ 58 50 37]
[ 58 50 37]
...
[119 104 97]
[ 81 66 61]
[ 80 65 60]]]
[[[23 19 18]
[23 19 18]
[22 18 17]
...
[23 19 16]
[23 19 18]
[22 18 17]]
[[23 19 18]
[23 19 18]
[22 18 17]
...
[22 18 15]
[22 18 17]
[21 17 16]]
[[23 19 18]
[23 19 18]
[22 18 17]
...
[20 16 13]
[21 17 16]
[20 16 15]]
...
[[23 18 15]
[23 18 15]
[23 18 15]
...
[39 34 30]
[39 34 30]
[39 34 30]]
[[23 18 15]
[23 18 15]
[23 18 15]
...
[39 34 30]
[39 34 30]
[39 34 30]]
[[23 18 15]
[23 18 15]
[23 18 15]
...
[39 34 30]
[39 34 30]
[39 34 30]]]
[[[ 27 39 53]
[ 27 39 53]
[ 27 39 53]
...
[ 27 36 53]
[ 27 36 53]
[ 27 36 53]]
[[ 27 39 53]
[ 27 39 53]
[ 27 39 53]
...
[ 26 35 52]
[ 26 35 52]
[ 26 35 52]]
[[ 27 39 53]
[ 27 39 53]
[ 27 39 53]
...
[ 26 35 52]
[ 26 35 52]
[ 26 35 52]]
...
[[ 31 35 38]
[ 36 40 43]
[ 30 31 33]
...
[ 77 88 106]
[ 77 90 107]
[ 77 90 106]]
[[ 25 26 28]
[ 34 34 36]
[ 31 29 32]
...
[ 76 87 107]
[ 74 87 106]
[ 74 87 104]]
[[ 26 26 28]
[ 34 34 36]
[ 33 28 32]
...
[ 77 88 110]
[ 76 89 108]
[ 75 88 107]]]
完整代码如下:
from instabot import Bot
from skimage.io import imread_collection
import random
import json
import os
imageDir = os.listdir("C:\\Users\\aa\\Desktop\\Programming\\Instagram\\media")
col_dir = 'C:\\Users\\aa\\Desktop\\Programming\\Instagram\\media\\*.jpg'
col = imread_collection(col_dir)
with open('C:\\Users\\aa\\Desktop\\Programming\\Instagram\\quotes.json') as f:
data = json.load(f)
def getQuote():
quote = random.choice(data)
return ('"'+quote['text']+'" - '+quote['author'])
getQuote()
print(getQuote())
bot = Bot()
bot.login(username = "", password = "")
def upload(path):
bot.upload_photo(path, caption=(getQuote()))
for item in imageDir:
if item.endswith(".REMOVE_ME"):
os.remove(os.path.join("C:\\Users\\aa\\Desktop\\Programming\\Instagram\\media", item))
print(col)
for i in col:
print(i)
我是 python 新手,所以我可能犯了一些基本错误,但如果你能让 for 循环打印一个正常的字符串,我会很感激,因为 str 函数没有效果
答案 0 :(得分:1)
您正在尝试获取所有路径,但您所做的实际上是读取图像并获取像素数据。要获取所有路径,您可以使用 glob
模块。
将 from glob import glob
添加到您的导入并更改以下行:
col = imread_collection(col_dir)
为此:
col = glob(col_dir)