将结果保存到csv文件用Python

问题描述:

import csv 

with open('test.csv', 'rb') as f: 
    data = list(csv.reader(f)) 

import collections 
counter = collections.defaultdict(int) 
for row in data: 
    counter[row[1]] += 1 
for row in data: 
    if counter[row[1]] >= 4: 
     writer = csv.writer(open("test1.csv", "wb")) 
     writer.writerows(row) 

我越来越奇怪的输出!这段代码有什么问题?将结果保存到csv文件用Python

+0

告诉我这DOC请我找不到它 – 2010-07-27 15:44:01

+2

的http:// docs.python.org/library/csv.html – 2010-07-27 15:45:37

+5

不到24小时前,您接受了[在其内容中包含此链接的答案](http://stackoverflow.com/questions/3339403/smallest-learning-curve-language -to-工作与-的CSV文件/ 3339430#3339430)! – SilentGhost 2010-07-27 15:47:19

使用csv.writer

import csv 

with open('thefile.csv', 'rb') as f: 
    data = list(csv.reader(f)) 

import collections 
counter = collections.defaultdict(int) 
for row in data: 
    counter[row[0]] += 1 


writer = csv.writer(open("/path/to/my/csv/file", 'w')) 
for row in data: 
    if counter[row[0]] >= 4: 
     writer.writerow(row) 
+1

回溯(最近通话最后一个): 文件 “C:\ pythonwork \ readthefile.py”,第11行,在 作家= csv.writer(开放(” 'test1.csv“),'w') 错误:未知方言 – 2010-07-27 15:50:04

+0

括号不匹配。您不应该接受当前版本的错误。 – danben 2010-07-27 15:52:23

+1

我试了其他palenthesis,仍然得到相同的错误writer = csv.writer(open('test1.csv'),'w') – 2010-07-27 15:53:23

一个简单的例子是这样的:

 
writer = csv.writer(open("filename.csv", "wb")) 
String[] entries = "first#second#third".split("#"); 
writer.writerows(entries) 
writer.close() 
+0

您可以关闭不是csv.writer对象的文件,它应该是 f = open (fileName,“wb”) writer = csv.writer(f) String [] entries =“first#second#third”.split(“#”); writer.writerows(项) f.close() – Waqas 2015-01-27 12:08:23

您可以关闭文件不csv.writer对象,它应该是:

f = open(fileName, "wb") 
writer = csv.writer(f) 
String[] entries = "first*second*third".split("*"); 
writer.writerows(entries) 
f.close() 

为了您的信息,还有其他选项比作者简单例如0 numpy。

import numpy as np 
np.savetxt('data.csv', (col1_array, col2_array, col3_array), delimiter=',') 

(这个答案帖子6年后的今天,为后人的缘故。)

这是我要做的事

import csv 
    file = open('???.csv', 'r') 
    read = csv.reader(file) 
    for column in read: 
      file = open('???.csv', 'r') 
      read = csv.reader(file) 
      file.close() 
      file = open('????.csv', 'a', newline='') 
      write = csv.writer(file, delimiter = ",") 
      write.writerow((,)) 
      file.close() 
+0

缩进不正确,为什么打开同一个文件两次? – 2017-09-15 14:25:09