Csv dosya nesnesine dizeleri yazmak için python 2/3 uyumlu kodu yazmaya çalışıyorum. Bu kod:csv'de io.BytesIO'ya yazı yazmak python3'te hata veriyor
line_as_list = [line.encode() for line in line_as_list]
writer_file = io.BytesIO()
writer = csv.writer(writer_file, dialect=dialect, delimiter=self.delimiter)
for line in line_as_list:
assert isinstance(line,bytes)
writer.writerow(line)
Python3 bu hatayı verir:
> writer.writerow(line)
E TypeError: a bytes-like object is required, not 'str'
Ama tip bir problemi yok iddia, neden csv
bir hata yaratıyor?
BytesIO
sadece Python 2 ve 3 için kullanamaz mıyım? Burada sorun nerede?
@tdelaney Demek istediğim StringIO ve BytesIO'nun kaynak metin için aynı gösterimi (muhtemelen utf-8'de) vereceğinden emin değilim. Bu yüzden aynı çıktı nesne türünü kullanmaya çalışıyorum. – goelakash