无法将最后一行写入csv

时间:2015-04-29 07:01:04

标签: python csv export

我的父数据集在每行中包含1条推文。我正在清理推文并从推文中提取特征词并将其导出到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()

有人可以帮我解决循环问题,以便最后一行也可以导出吗?

提前致谢!

3 个答案:

答案 0 :(得分:0)

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

也没有使用变量st。

答案 1 :(得分:0)

正如Paul Cornelius的回答 - 你的问题是你每次绕圈都要打开你的.csv文件,而不是关闭它。

使用with open('file', 'r') as 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 构造更安全,因为这会为您再次关闭文件,即使发生异常并且脚本提前终止。

这样的事情:

stopwords

我已经离开了window.onload行,即使它们没有被使用....

答案 2 :(得分:0)

看起来您没有关闭目标文件。 也许你应该使用类似的东西:

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