csv写入程序未关闭fi

2024-06-02 07:31:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在读取一个csv文件,然后编写一个新文件:

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[11]] += 1

writer = csv.writer(open('/pythonwork/thefile_subset1.csv', 'w'))
for row in data:
    if counter[row[11]] >= 500:
       writer.writerow(row)

由于某种原因,我无法让csv.writer关闭文件。当我打开文件时,它会以只读方式打开,因为它说它仍处于打开状态。

完成后如何关闭文件subset1.csv?


Tags: 文件csvinimportfordatawithcounter
3条回答

强制写入程序清理:

del writer

您可以将open命令分解成自己的变量,以便以后关闭它。

f = open('/pythonwork/thefile_subset1.csv', 'w')
writer = csv.writer(f)
f.close()

如果试图写入已关闭的文件,csv.writer将抛出一个ValueError

with open('/pythonwork/thefile_subset1.csv', 'w') as outfile:
    writer = csv.writer(outfile)
    for row in data:
        if counter[row[11]] >= 500:
           writer.writerow(row)

相关问题 更多 >