我有一个 CSV 文件,其中一些值如下所示:
Superman/, 250lbs, Batman/, 180lbs
Clark Kent, , Bruce Wayne,
我需要组合行,使其看起来像:
Superman/Clark Kent, 250lbs, Batman/Bruce Wayne, 180lbs
显然,合并后我需要删除第二行。
CSV
库可以做到这一点吗?我知道有 extend(...)
函数,但我需要保持列号相同。
您可以使用 csv 模块的阅读器像平常一样逐行迭代文件, 然后,当您遇到特殊行(例如“Superman/”)时,向前读一行并 将两者结合起来。
我还添加了skiinitialspace = True关键字来在读取过程中修剪每个字段的前导空格:
import csv
data: list[list[str]] = []
with open("input.csv", newline="") as f:
reader = csv.reader(f, skipinitialspace=True)
for row in reader:
if row[0] == "Superman/":
next_row = next(reader) # manually iterate reader
row[0] += next_row[0]
row[2] += next_row[2]
data.append(row)
print(data)
通过简单的两行输入,数据如下所示:
[
['Superman/Clark Kent', '250lbs', 'Batman/Bruce Wayne', '180lbs']
]