Добрый вечер, у меня проблема с кодом, который я пишу, и я бы хотел получить совет. Я хочу сделать следующее:
- Удалить строки в файле .csv, которые содержат значение c (-3.4028 * 10 ^ 38)
- Создать новый файл .csv
Файл, с которым я работаю, имеет большой размер (12,2 ГБ, 87 миллионов строк) и содержит 6 столбцов, причем первые 5 столбцов представляют собой числовые значения, а последнее значение содержит текст.
Вот мой код:
import csv
directory = "/media/gman/Folder1/processed/test_removal1.csv"
with open('run1.csv', 'r') as fin, open(directory, 'w', newline='') as fout:
# define reader and writer objects
reader = csv.reader(fin, skipinitialspace=False)
writer = csv.writer(fout, delimiter=',')
# write headers
writer.writerow(next(reader))
# iterate and write rows based on condition
for i in reader:
if (i[-1]) == -3.4028E38:
writer.writerow(i)
При запуске я получаю следующее сообщение об ошибке:
Ошибка: строка содержит NUL
File "/media/gman/Aerospace_Classes/Programs/csv_remove.py", line 19, in <module>
for i in reader: Error: line contains NUL
Я не уверен, как поступить. Если у кого-то есть предложения, пожалуйста, дайте мне знать. Спасибо.