将硬编码字符串分配给变量pytumblr时,但在动态传递它时不起作用

时间:2018-03-21 08:09:03

标签: python pytumblr

我正在尝试从图片链接中将帖子保存到tumblr队列。

line = "https://68.media.tumblr.com/b965fbb2e501610a29d80ffb6fb3e1ad/tumblr_n55vdeTse11rn1906o1_500.jpg"
client.create_photo(blogName, state="queue", tags=["testing", "ok"],
                    source=line)
print(line)

输出

https://68.media.tumblr.com/b965fbb2e501610a29d80ffb6fb3e1ad/tumblr_n55vdeTse11rn1906o1_500.jpg

根据需要将帖子成功添加到队列中。

但是,我有一个带有图片网址列表的文件,我正在阅读并使用readlines()循环到它们。

for line in lines:
    client.create_photo(blogName, state="queue", tags=["testing", "ok"],
                    source=line)
    print(line)
    exit()

输出与上述相同

https://68.media.tumblr.com/b965fbb2e501610a29d80ffb6fb3e1ad/tumblr_n55vdeTse11rn1906o1_500.jpg

但是,帖子实际上并没有在队列中创建,也没有抛出异常。

我无法弄清楚出了什么问题。

尝试使用本地文件上传时遇到同样的问题。

1 个答案:

答案 0 :(得分:1)

尝试将line.strip()而不是line传递给该功能。

readlines()方法返回以"\n"符号结尾的字符串列表,需要将其删除,所以实际上最好以这种方式从文件中读取行:

lines = [l.strip() for l in file.readlines if l.strip()]

这样你就忽略了"\n"和空行。