2015-09-28 58 views
-1

我正在使用tweepy來提取最近的50個多用戶推文的代碼。通過此代碼,我可以爲所有用戶分別生成CSV文件,但希望他們能夠進入單個CSV文件。如何將多個用戶的推文添加到單個CSV文件中

import tweepy 
import csv 

consumer_key ='XXX' 
consumer_secret = 'XXX' 
access_key = 'XXX' 
access_secret = 'XXX' 

handles_list = ["handle1", "handle2", "handle3"] 

def get_all_tweets(screen_name): 
    auth = tweepy.OAuthHandler(consumer_key, consumer_secret) 
    auth.set_access_token(access_key, access_secret) 
    api = tweepy.API(auth) 

    recenttweets = [] 
    recent_tweets = api.user_timeline(screen_name = handle, count=50) 
    recenttweets.extend(new_tweets) 

    Resultingtweets= [[tweet.user.name, tweet.user.screen_name, tweet.user.description, tweet.id_str, tweet.created_at, tweet.text.encode("utf-8")] for tweet in recenttweets] 

    with open('%s_tweets.csv' % handle, 'w', encoding='utf-8') as f: 
     writer = csv.writer(f) 
     writer.writerow(["User Name","Twitter_Handle","Twitter_User_Description","tweet_id","created_at","Tweet_text"]) 
     writer.writerows(Resultingtweets) 

if __name__ == '__main__': 
    for handle in handles_list: 
     get_all_tweets("handles") 
     print ("Done.") 

回答

2

你需要rejig東西了一下,只有一個文件打開你的輸出,以下那種方法應該工作:

import tweepy 
import csv 

consumer_key ='XXX' 
consumer_secret = 'XXX' 
access_key = 'XXX' 
access_secret = 'XXX' 

handles_list = ["handle1", "handle2", "handle3"] 

def get_all_tweets(screen_name, writer): 
    auth = tweepy.OAuthHandler(consumer_key, consumer_secret) 
    auth.set_access_token(access_key, access_secret) 
    api = tweepy.API(auth) 

    recenttweets = [] 
    recent_tweets = api.user_timeline(screen_name = handle, count=50) 
    recenttweets.extend(new_tweets) 

    Resultingtweets= [[tweet.user.name, tweet.user.screen_name, tweet.user.description, tweet.id_str, tweet.created_at, tweet.text.encode("utf-8")] for tweet in recenttweets] 

    writer.writerow(["User Name","Twitter_Handle","Twitter_User_Description","tweet_id","created_at","Tweet_text"]) 
    writer.writerows(Resultingtweets) 

if __name__ == '__main__': 
    with open('all_tweets.csv', 'w', encoding='utf-8') as f_all: 
     writer = csv.writer(f_all) 

     for handle in handles_list: 
      get_all_tweets("handles", writer) 
      print ("Done.") 
+0

它現在的工作非常感謝@馬丁·埃文斯 –

相關問題