繁体   English   中英

可以将读取的文件与列表切片一起组合在列表理解中吗?

[英]Can a file read be combined in a list comprehension with list slicing?

以下代码片段是使用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将拒绝状态更新空格,而我尚未为此编写任何错误处理)。

我只读取输入文件的第一行,然后在代码中的后面减去该行再写回该文件。 我认为这是我有限的技能最简单的解决方案,因为该机器人无法全天候运行24/7

我不是程序员,我使用了在Stack Overflow和其他地方发现的示例代码片段来破解这些代码。 我正在尝试使用非常简单的代码,而不依赖Twython之外的第三方库。 生成器和迭代器对我来说似乎是法术。

好吧,也许只是一个很小的更改-不必将列表分配给变量或遍历索引,可以直接遍历列表:

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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM