【发布时间】:2019-07-10 18:22:56
【问题描述】:
这里是python的新手尝试。
我尝试实现类似问题Splitting csv file based on a particular column using Python中讨论的内容
我的目标是获取一个包含 1500 万行 500 个股票代码的文件,并将每个股票代码放在自己的文件中。
但是,当我运行它时,我得到了
OSError: [Errno 24] 打开的文件太多:'APH.csv'
所有数据行都是按顺序排列的(即代码“A”的所有数据行都是一个接一个,所以我可以在继续下一个文件之前关闭一个文件)。我不确定在继续下一个之前我会在这段代码中的哪个位置关闭文件。仅供参考 - 如果重要的话,这是在 Mac 上。
我的代码是
import csv
with open('WIKI_PRICES_big.csv') as fin:
csvin = csv.DictReader(fin)
# Category -> open file lookup
outputs = {}
for row in csvin:
cat = row['ticker']
# Open a new file and write the header
if cat not in outputs:
fout = open('{}.csv'.format(cat), 'w')
dw = csv.DictWriter(fout, fieldnames=csvin.fieldnames)
dw.writeheader()
outputs[cat] = fout, dw
# Always write the row
outputs[cat][1].writerow(row)
# Close all the files
for fout, _ in outputs.values():
fout.close()
【问题讨论】:
-
你愿意使用 Pandas 吗?
标签: python python-3.x