以下代码片段是使用Twython的推特机器人的核心。 我想知道我是否可以将读入的文件合并到列表理解 中,因为看起来相当复杂,因为它只是读取一行项目列表,然后 从中创建另一个多项列表。可以通过列表切片将列表理解结合起来吗?
我检查了一下,发现了一些使用 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()条()的使用,因为我希望能够读取任意长度的线 一个文件,并删除任何EOL和空白(列表中的最后一个项目 最终可能作为唯一的空间; twitter会拒绝空格状态更新,并且我还没有为此写任何错误处理)。
我只读取输入文件的第一行,然后在代码中将文件写回 减去该行。我决定这是我的有限技能的最简单的解决方案,因为机器人不会24/7运行
我不是程序员,我用一堆示例代码将它们一起砍掉了我发现在堆栈上发现了一堆 溢出和其他地方。我试图使用非常简单的 代码,而不是依赖Twython之外的第三方库。生成器和迭代器 显示为对我的巫术。
我再定位的重复数据删除技术,以[split py generator(splitEvery)](// stackoverflow.com/q/1915170)中的每n个项目中的一个生成器/可迭代,因为它更好地覆盖了文件的情况。 –
@MartijnPieters然而,这个复制并没有真正回答OP的问题,这不是“如何将一个序列分割成固定长度的块”,而是“如何将这个分割与文件中的读取结合起来”。 –
你不**创建一个元素列表,'bigtweet'只是一个字符串。没有什么复杂的。恕我直言,示例代码已经足够好了。 –