我正在尝试编写适用于Python 2/3的兼容代码,以将字符串写入CSV文件对象。此代码:
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中会出现以下错误:
> writer.writerow(line)
E TypeError: a bytes-like object is required, not 'str'
但是assert在类型上没有问题,那么为什么csv
会创建错误?
我不能只针对Python 2和3使用BytesIO
吗?这里的问题在哪里?
utf-8
中)提供相同的表示。这就是为什么我试图使用相同的输出对象类型。 - goelakash