在列表理解和列表切片中,是否可以合并读取的文件?

2024-03-28 19:51:36 发布

您现在位置:Python中文网/ 问答频道 /正文

下面的代码片段是使用Twython的twitter bot的核心。 我想知道我是否能把读到的文件合并到列表理解中去 因为将一行作为一个项目列表读入到 从中创建另一个多项目列表。在

我检查了一下,发现了一些示例,其中使用 例如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])

注意事项:

Python2.7,Linux。安装了python3.5,并在需要时提供。在

使用readline().strip()是因为我希望能够读取包含行的文件 任意长度,并删除所有EOL和空白(列表的最后一项 可能只作为共享空间结束;twitter将拒绝共享空间的状态更新,而我 尚未为此编写任何错误处理)。在

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

我不是一个程序员,我用一些示例代码I来破解这个问题 在堆栈溢出和其他地方发现的。我试着用很简单的 代码,不依赖除Twython之外的第三方libs。生成器和迭代器 对我来说是魔法。在


Tags: 文件项目代码textin示例列表for
1条回答
网友
1楼 · 发布于 2024-03-28 19:51:36

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

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)

相关问题 更多 >