gpt4 book ai didi

写入 CSV 文件时,Python 不会自动转到下一行

转载 作者:行者123 更新时间:2023-11-28 22:32:59 25 4
gpt4 key购买 nike

我正在尝试打开源 CSV 文件 (source.csv) 并根据第一列名称将其分解为多个 CSV 文件。我用这个例子来展示它:

source.csv内容:

2016-11,a
2016-11,b
2016-12,a
2016-12,b
2016-12,c

我希望程序创建两个文件,名称分别为 2016-11.csv2016-12.csv:

2016-11.csv 的预期内容:

2016-11,a
2016-11,b

2016-12.csv 的预期内容:

2016-12,a
2016-12,b
2016-12,c

我开发了这段代码:

import csv
path1='/home/sourcefilepath/'
path2='/home/targetpath/'
filename='source.csv'

with open(path1+filename) as f:
reader = csv.reader(f)
for row in reader:
date=row[0]
with open(path2+date+'.csv', 'w') as csvfile:
writer = csv.writer(csvfile, delimiter=',')
writer.writerow(row)

问题是它只写入每个文件的第一行,而不会在写入时自动转到下一行。我该如何解决这个问题?

最佳答案

每次使用 w 标志打开文件时都会覆盖文件的内容,请尝试使用 itertools.groupby 对行进行分组:

import csv
import itertools

with open(path1 + filename) as f:
reader = csv.reader(f)
for date, rows in itertools.groupby(reader, lambda row: row[0]):
with open(path2 + date + '.csv', 'w') as csvfile:
writer = csv.writer(csvfile, delimiter=',')
writer.writerows(rows)

关于写入 CSV 文件时,Python 不会自动转到下一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40367161/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com