合并 CSV 中的两行并保留列数

问题描述 投票:0回答:1

我有一个 CSV 文件,其中一些值如下所示:

Superman/, 250lbs, Batman/, 180lbs
Clark Kent, , Bruce Wayne, 

我需要组合行,使其看起来像:

Superman/Clark Kent, 250lbs, Batman/Bruce Wayne, 180lbs

显然,合并后我需要删除第二行。

CSV
库可以做到这一点吗?我知道有
extend(...)
函数,但我需要保持列号相同。

python csv
1个回答
0
投票

您可以使用 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']
]
© www.soinside.com 2019 - 2024. All rights reserved.