编辑当前python csv上方的单元格

cdmah0mi  于 2023-02-17  发布在  Python
关注(0)|答案(1)|浏览(128)
import csv
with open('timetable.csv', newline='') as csvfile:
    reader = csv.reader(csvfile)
    for row in reader:
        rowId = row[0]
        pmp = row[1]

        for item in row:
            if item != "" and "/" in item:
                class = item
                editRow = row[0] - 1
-------------------------------------------------------
1 | name | ----- | class | ----- |
2 |      |       | class_id / class_name |       |
-------------------------------------------------------

我有这样的代码,我正在寻找第2行,我得到了具有class_id/class_name的单元格,但是我试图将上一行的内容粘贴到同一个单元格中,以便将文本从第2行粘贴到第1行,但这些内容不起作用
预期产出为:

-------------------------------------------------------
1 | name | ----- | class / class_id / class_name | ----- |
2 |      |       | class_id / class_name |       |
-------------------------------------------------------
nzk0hqpo

nzk0hqpo1#

您可以在变量all_rows中跟踪所有先前处理过的行。然后,上一行可作为all_rows[-1]访问:

import csv
with open('timetable.csv', newline='') as csvfile:
    reader = csv.reader(csvfile, delimiter="|")
    all_rows = []
    for row in reader:
        # skip lines containing only hyphens 
        if len(row) == 1:
            all_rows.append(row)
            continue

        rowId = row[0]
        pmp = row[1]

        for col_num, item in enumerate(row):
            if all_rows and len(all_rows[-1]) > 1 and "/" in item:
                prev_row = all_rows[-1]
                prev_row[col_num] += " / " + item 

        all_rows.append(row)

使用正确的分隔符将其写回文件,即可获得所需的输出:

-------------------------------------------------------
1 | name | ----- | class  /  class_id / class_name | ----- |
2 |      |       | class_id / class_name |       |
-------------------------------------------------------

在线试用

相关问题