用Python将结果保存到csv文件

2024-04-27 05:01:16 发布

您现在位置: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)

我收到奇怪的输出!这个密码怎么了?


Tags: csvintestimportfordataaswith
3条回答

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

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

我知道问题是关于您的“csv”包实现的,但是对于您的信息,有一些选项要简单得多——例如,numpy。

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

(为了后人的缘故,这个答案在6年后公布。)

在另一个类似于你所问的情况下,假设你有两个这样的列:

names = ['Player Name', 'Foo', 'Bar']
scores = ['Score', 250, 500]

你可以这样保存它:

np.savetxt('scores.csv', [p for p in zip(names, scores)], delimiter=',', fmt='%s')

scores.csv看起来像这样:

Player Name,Score
Foo,250
Bar,500

使用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)

相关问题 更多 >