Python 无法将最后一行写入csv

Python 无法将最后一行写入csv,python,csv,export,Python,Csv,Export,我的父数据集每行包含一条tweet。我正在清理推文,从推文中提取特征词并将其导出到csv。除了最后一行外,我可以导出所有行。我正在使用以下代码: #Read the tweets one by one and process it fp = open('C:/Twitter_crawl/tweetDB4_import.csv', 'r') st = open('C:/Twitter_crawl/stopwords.txt', 'r') stopWords = getStopWordList(

我的父数据集每行包含一条tweet。我正在清理推文,从推文中提取特征词并将其导出到csv。除了最后一行外,我可以导出所有行。我正在使用以下代码:

#Read the tweets one by one and process it
fp = open('C:/Twitter_crawl/tweetDB4_import.csv', 'r')


st = open('C:/Twitter_crawl/stopwords.txt', 'r')
stopWords = getStopWordList('C:/Twitter_crawl/stopwords.txt')

for line in fp.readlines():
    a = csv.writer(open('feature_vector.csv', 'a'))
    processedTweet = processTweet(line)
    featureVector = getFeatureVector(processedTweet)
    a.writerow(featureVector)
    print (featureVector)
#end loop
fp.close()
谁能帮我完成循环,这样最后一行也可以导出


提前谢谢

您需要关闭文件feature_vector.csv。实际上,每次通过循环都会打开它,这很糟糕。在循环之前打开一次,然后关闭一次


此外,变量st也没有使用。

如Paul Cornelius的回答所示-您的问题是每次循环时都会打开.csv文件,但没有关闭它

对于文件操作,使用带有open('file','r')的
作为openfile:
构造更安全,因为这样可以为您再次关闭文件,即使发生异常并且脚本提前终止

大概是这样的:

st = open('C:/Twitter_crawl/stopwords.txt', 'r')
stopWords = getStopWordList('C:/Twitter_crawl/stopwords.txt')

with open('C:/Twitter_crawl/tweetDB4_import.csv', 'r') as fp:
    with open('feature_vector.csv', 'a') as op:
        a = csv.writer(op)
        for line in fp.readlines():
            processedTweet = processTweet(line)
            featureVector = getFeatureVector(processedTweet)
            a.writerow(featureVector)
            print (featureVector)
        #end loop

我已将
停止字
行保留在中,即使它们未被使用……

看起来您没有关闭目标文件。 也许您应该使用以下内容:

with open('feature_vector.csv', 'a') as csvfile:

不关闭文件可能会导致许多其他行也无法写入。最后一个很容易被注意到。