Для удаления большого количества строк из 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 файла и сохранить результаты в новом файле.