Как удалить много строк (порядка 500.000) из csv файла в Python?

Для удаления большого количества строк из CSV файла в Python, рекомендуется использовать следующий подход:

1. Открыть исходный файл CSV для чтения и создать новый файл CSV для записи обновленного содержимого.

with open('input.csv', 'r') as input_file, open('output.csv', 'w') as output_file:
    # код для удаления строк и записи в новый файл

2. Создать объект csv.reader для чтения исходного файла и объект csv.writer для записи в новый файл:

import csv

reader = csv.reader(input_file)
writer = csv.writer(output_file)

3. Используя цикл, пройти по строкам источника и записывать только те строки, которые не нужно удалить, в новый файл:

for row in reader:
    # код для определения, нужно ли удалить строку
    if should_delete(row):
        continue # пропустить удаленную строку
    writer.writerow(row)

4. Реализовать функцию should_delete(row), которая определит, нужно ли удалить текущую строку. Например, если вам нужно удалить первые 500 000 строк, то можно использовать такую реализацию:

def should_delete(row):
    global count
    count += 1
    if count <= 500000:
        return True
    return False

5. Не забудьте закрыть оба файла после завершения работы с ними:

input_file.close()
output_file.close()

Итоговый код будет выглядеть примерно так:

import csv

def should_delete(row):
    global count
    count += 1
    if count <= 500000:
        return True
    return False

count = 0

with open('input.csv', 'r') as input_file, open('output.csv', 'w') as output_file:
    reader = csv.reader(input_file)
    writer = csv.writer(output_file)

    for row in reader:
        if should_delete(row):
            continue
        writer.writerow(row)

input_file.close()
output_file.close()

Этот код позволит удалить порядка 500 000 строк из исходного CSV файла и сохранить результаты в новом файле.