Python 从不同变量将数据保存到csv

Python 从不同变量将数据保存到csv,python,twitter,Python,Twitter,我是python新手,我正在寻找一些帮助来创建一个存储来自两个不同变量的数据的循环。此方法仅保存第一条tweet # Twitter Loop for tweet in tweepy.Cursor(api.search,q=search+ " -filter:retweets", result_type='recent', lang="en").items(num_tweets): raw = tweet.text # Tex

我是python新手,我正在寻找一些帮助来创建一个存储来自两个不同变量的数据的循环。此方法仅保存第一条tweet

# Twitter Loop

for tweet in tweepy.Cursor(api.search,q=search+
        " -filter:retweets",
        result_type='recent',
        lang="en").items(num_tweets):

    raw = tweet.text

    # Text processing

    clean = re.sub(r"(?:@\S*|#\S*|http(?=.*://)\S*)", "", raw)

    result = cool.api(clean)

# CSV File

import csv
f = open("file.csv", "a")
c = csv.writer(f)
c.writerow([clean, result])
f.close()

我做了很多尝试,但我不确定正确的方法是什么。我应该为每个变量创建一个循环吗?

简单。您需要将呼叫移动到for循环内的csv.writerow。这样,您迭代的每条推文都将写入csv文件,或者更准确地说,从推文中删除的数据:

import csv

f = open("file.csv", "a", newline="")
c = csv.writer(f)

for tweet in tweepy.Cursor(api.search,q=search+
        " -filter:retweets",
        result_type='recent',
        lang="en").items(num_tweets):

    raw = tweet.text
    clean = re.sub(r"(?:@\S*|#\S*|http(?=.*://)\S*)", "", raw)
    result = cool.api(clean)
    c.writerow([clean, result]) # Write each tweet to the csv file.
f.close()
可以通过使用上下文管理器语句来改进代码。这意味着您的文件将始终关闭,无论发生什么情况:

import csv


with open('file.csv', 'a') as file:
    c = csv.writer(file)
    for tweet in tweepy.Cursor(api.search,q=search+
        " -filter:retweets",
        result_type='recent',
        lang="en").items(num_tweets):

        raw = tweet.text
        clean = re.sub(r"(?:@\S*|#\S*|http(?=.*://)\S*)", "", raw)
        result = cool.api(clean)
        c.writerow([clean, result])

非常感谢你!你知道为什么我的结果之间有空行吗?你的意思是在你正在写入csv文件@YoussefS.?@YoussefS的行之间有额外的行吗。您可能应该将open的换行符参数设置为空。因此,打开'file.csv','a'as文件将变成打开'file.csv','a',newline=as文件。很高兴我能帮助@YoussefS。快乐编程!