Да, но в соответствии с требованиями архитектуры мы используем библиотеку CSV.

родолжение к следующему посту.

Замена пробелов значениями NULL путем сравнения двух файлов CSV с использованием python

Я могу добавить пропущенные столбцы в новый CSV-файл csvfile3 и заменить пробелы значениями NULL.

Это новое требование к моему ведру.

Но еслиcsvfile1 не содержат порядок столбцов в соответствии с порядком заголовков вcsvfile2Я могу видеть правильный порядок столбцов вcsvfile3, но те столбцы, которые не находятся в правильном месте вcsvfile1 заполняются значениями NULL в выходном файлеcsvfile3.

Это не ожидаемый результат. Значения тех столбцов, которые не находятся в правильном месте вcsvfile1также следует скопировать вcsvfile3 вместе с заголовком.

Код присутствует в приведенной выше ссылке.

скажем, это моя другая версия файла CSVcsvfile1 для этого поста:

name,City,Dept        
sree,Bengaluru,CSE,  
vatsasa,Hyd,ECE,      
,VJA,IT,      
capini,Mech,,   
DTP,,Civil,
Bengaluru,TVM,ECM,      
sre,MNGL,ECS,   
vatsas,Kochi,    
,TVM,Nano,      
capmin,Tech,,       
DTP9,Kochi,CSS,   
,TVM,ESS,    
sree0,MNGL,RSS,  

csvfile2 будет таким же, как файл в ссылке выше.

Ниже ожидаемый результат:

name      Dept  City      Address
sree,     CSE,  Bengaluru,NULL
vatsasa,  ECE,  Hyd,      NULL
NULL,     IT,   VJA,      NULL
capini,   NULL, Mech,     NULL
DTP,      Civil,NULL,     NULL
Bengaluru,ECM,  TVM,      NULL
sre,      ECS,  MNGL,     NULL
vatsas,   NULL, Kochi,    NULL
NULL,     Nano, TVM,      NULL
capmin,   NULL, Tech,     NULL
DTP9,     CSS,  Kochi,    NULL
NULL,     ESS,  TVM,      NULL
sree0,    RSS,  MNGL,     NULL

Вывод кода по ссылке:

name      Dept  City      Address
sree,     CSE,  NULL,     NULL
vatsasa,  ECE,  NULL,     NULL
NULL,     IT,   NULL,     NULL
capini,   NULL, NULL,     NULL
DTP,      Civil,NULL,     NULL
Bengaluru,ECM,  NULL,     NULL
sre,      ECS,  NULL,     NULL
vatsas,   NULL, NULL,     NULL
NULL,     Nano, NULL,     NULL
capmin,   NULL, NULL,     NULL
DTP9,     CSS,  NULL,     NULL
NULL,     ESS,  NULL,     NULL
sree0,    RSS,  NULL,     NULL

Это код:

import csv

with open("csvfile1.csv") as csv_1,\
     open("csvfile2.csv") as csv_2,\
     open("csvfile3.csv", "w") as csv_3:

    reader_1 = csv.reader(csv_1)
    reader_2 = csv.reader(csv_2)
    writer = csv.writer(csv_3)

    headers_1 = next(reader_1)
    headers_2 = next(reader_2)

    insert_null_at = []
    for i, header in enumerate(headers_2):
        if header not in headers_1:
            insert_null_at.append(i)

    writer.writerow(headers_2)
    for row in reader_1:
        for i in insert_null_at:
            row.insert(i, "")

        writer.writerow([item if item != "" else "NULL" for item in row])

Ответы на вопрос(0)

Ваш ответ на вопрос