Sto provando a scrivere codice python 2/3 compatibile per scrivere stringhe sull'oggetto file csv. Questo codice:Scrittura su io.BytesIO in csv non riesce in 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)
dà questo errore su python3:
> writer.writerow(line)
E TypeError: a bytes-like object is required, not 'str'
Ma affermare non ha alcun problema con il tipo, quindi perché è csv
creazione di un errore?
Non è possibile utilizzare BytesIO
solo per Python 2 e 3? Dov'è il problema qui?
@tdelaney Ciò che intendevo era che non sono sicuro che StringIO e BytesIO forniscano la stessa rappresentazione per il testo di origine (probabilmente in 'utf-8'). Ecco perché sto cercando di utilizzare lo stesso tipo di oggetto di output. – goelakash