以下代码片段是使用Twython的twitter机器人的核心。 我想知道我是否可以将读取的文件合并到列表中 因为看起来相当复杂,只能在一个项目列表中读取一行 从中创建另一个多项目列表。
我已经检查过并找到了一些使用中读取整个文件的示例 例如readlines(),但也不涉及切片。
with open(tweet_datafile,'r') as smstweets:
bigtweet = smstweets.readline().strip()
text_entire = [ bigtweet[i:i+140] for i in range(0,len(bigtweet),140) ]
for line in range(len(text_entire)):
twitter.update_status(status=text_entire[line])
注意:
Python 2.7,Linux。安装了Python 3.5&如果需要可用。
使用了readline()。strip()因为我希望能够用行读取文件 任意长度并删除任何EOL和空格(列表的最后一项) 可能最终只能作为空格; twitter会拒绝空间的状态更新,而我 还没有为此写任何错误处理)。
我只读取输入文件的第一行,然后在代码中将文件写回 减去那条线。我认为这是我最有限技能的最简单的解决方案,因为机器人不会全天候运行
我不是程序员,我使用示例代码I的碎片一起攻击了这个 发现躺在Stack Overflow和其他地方。我想用的很简单 代码并不依赖于Twython之外的第三方库。生成器和迭代器 对我来说似乎是巫术。
答案 0 :(得分:0)
好吧,也许只是一个小改动 - 没有必要将列表分配给变量也不必迭代索引,列表可以直接迭代:
with open(tweet_datafile,'r') as smstweets:
bigtweet = smstweets.readline().strip()
for line in ( bigtweet[i:i+140] for i in range(0,len(bigtweet),140) ):
twitter.update_status(status=line)