Я пытаюсь сохранить целостность данных при записи в CSV-файл, и у меня возникают проблемы с записью нулевых символов. Следующий фрагмент кода создает файл с "Hello".
with open('outfile..txt', 'wb') as f:
row = ['Hello\x00World']
writer = csv.writer(f, quoting=csv.QUOTE_ALL)
writer.writerow(row)
Я хочу избежать замены / удаления нулевых символов из-за характера данных, с которыми я работаю. f.write() работает нормально, но я полагаю, что будет немного сложно написать мой собственный класс для обработки цитирования, экранирования и разделения значений. Есть ли какие-либо жизнеспособные альтернативы, кроме создания настраиваемого модуля записи CSV?
row = ['Hello \ x00World'.encode (' ascii ')]
Файлы CSV предназначены для хранения обычного текста (т.е. печатных символов); любая попытка сохранить двоичное значение, такое как \x00, нарушает формат, и нельзя ожидать, что он будет работать (даже если это так для некоторых реализаций)





Воспроизводится на Python 2. Python 3 работает правильно. Выключатель? Python 2 - EOL в 2020 году.