Tweepy:在每条推文中读取文本文件并鸣叫换行符

时间:2020-05-24 02:17:36

标签: python twitter text-files tweepy

这里是初学者的总人数,非常感谢您的耐心配合。我正在尝试使用Tweepy从文本文件中读取鸣叫并将其鸣叫出去。非常简单,但是我希望文本文件中每一行的推文之间可以有换行符。例如,一条推文可能如下所示:

推文的一部分

推文的第二部分

推文的第三部分

同样,tweet是文本文件本身中的一行。我只想分解该行中的一些文本。

在文本文件中,我通过在这些换行符之间插入两个“ \ n”来创建了tweets,但是tweets本身却显示了“ \ n”字符。那么如何在推文中创建这些换行符?非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

在文本编辑器中键入\n时,它们不是换行符,但在Python代码中是换行符。

下面的代码会将您的单行推文分解为每行三个单词,并且在每三个单词之间插入一个换行字符。

import tweepy

auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth)

def chunks(lst, n):
    """Yield successive n-sized chunks from lst.
       from here: https://stackoverflow.com/a/312464/42346"""
    for i in range(0, len(lst), n):
        yield lst[i:i + n]

with open('to_be_tweeted.txt','r') as f:
    for line in f:
        split_on_spaces = line.rstrip('\n').split()
        chunked = [chunk for chunk in chunks(split_on_spaces,3)]
        multiline_tweet = "\n".join([" ".join(word for word in chunk) 
                                     for chunk in chunked])
        api.update_status(multiline_tweet)

示例:

s = """I'm going to press enter every three words just to annoy you."""
split_on_spaces = s.rstrip('\n').split()
chunked = [chunk for chunk in chunks(split_on_spaces,3)]
multiline_tweet = "\n".join([" ".join(word for word in chunk) 
                             for chunk in chunked])
print(multiline_tweet)

结果:

I'm going to
press enter every
three words just
to annoy you.