Как объединить список и удалить целую строку, если какой-либо элемент пуст в Python


0 принят

Это, вероятно, было бы проще сделать, просто используя стандартный, csv.reader()а не словарь-читатель:

import csv

with open('input.csv', 'rb') as f_input, open('output.csv', 'wb') as f_output:
    csv_input = csv.reader(f_input)
    csv_output = csv.writer(f_output)
    header = next(csv_input)
    csv_output.writerow(header)    # copy the header to the output

    for row in csv_input:
        if len(row) and '' not in row:
            csv_output.writerow(row)

Сначала он копирует заголовок из входного CSV в выходной CSV. Затем для каждой строки сначала проверяется, чтобы убедиться, что это не пустая строка. Затем он проверяет всю строку, чтобы увидеть, есть ли какие-либо пустые значения. Если их нет, он записывает всю строку в выходной CSV-файл.

Предоставление вам output.csvсодержания:

Name,Sub,Idx,Isd
AAB,YAH,2,7
YAH,HJY,25,23

Примечание. Предполагается, что вы используете Python 2.x. Если используется Python 3.x, замените эту строку:

with open('input.csv', newline='') as f_input, open('output.csv', 'w', newline='') as f_output:    
питон, питон-3.x, CSV,

python,python-3.x,csv,

0

Ответов: 1


0 принят

Это, вероятно, было бы проще сделать, просто используя стандартный, csv.reader()а не словарь-читатель:

import csv

with open('input.csv', 'rb') as f_input, open('output.csv', 'wb') as f_output:
    csv_input = csv.reader(f_input)
    csv_output = csv.writer(f_output)
    header = next(csv_input)
    csv_output.writerow(header)    # copy the header to the output

    for row in csv_input:
        if len(row) and '' not in row:
            csv_output.writerow(row)

Сначала он копирует заголовок из входного CSV в выходной CSV. Затем для каждой строки сначала проверяется, чтобы убедиться, что это не пустая строка. Затем он проверяет всю строку, чтобы увидеть, есть ли какие-либо пустые значения. Если их нет, он записывает всю строку в выходной CSV-файл.

Предоставление вам output.csvсодержания:

Name,Sub,Idx,Isd
AAB,YAH,2,7
YAH,HJY,25,23

Примечание. Предполагается, что вы используете Python 2.x. Если используется Python 3.x, замените эту строку:

with open('input.csv', newline='') as f_input, open('output.csv', 'w', newline='') as f_output:    
питон, питон-3.x, CSV,
Похожие вопросы