Próbuję napisać kod zgodny z Pythonem 2/3, aby napisać ciągi znaków do obiektu pliku csv. Ten kod:Zapisywanie do io.BytesIO w csv kończy się niepowodzeniem w python3
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)
daje ten błąd na Python3:
> writer.writerow(line)
E TypeError: a bytes-like object is required, not 'str'
Ale twierdzą, nie ma problemu z typem, więc dlaczego jest csv
tworzenia błąd?
Nie mogę używać BytesIO
tylko dla Pythona 2 i 3? Gdzie jest problem?
@tdelaney Co miałem na myśli to nie jestem pewien, czy StringIO i BytesIO dadzą taką samą reprezentację dla tekstu źródłowego (prawdopodobnie w 'utf-8'). Właśnie dlatego próbuję użyć tego samego typu obiektu wyjściowego. – goelakash