Subclassing file by subclassing `io.TextIOWrapper` — but what signature does its constructor have?

有些话、适合烂在心里 提交于 2019-12-05 04:14:11

I think the documentation you are looking for is

class io.TextIOWrapper(buffer, encoding=None, errors=None, newline=None, line_buffering=False)
    A buffered text stream over a BufferedIOBase binary stream. [...]

The first argument is a binary stream, which implies something opened in binary mode by open.

As far as "fixing" your csv file, you could also use a generator:

# untested
def FixCsv(csv_file, *args, **kwds):
    "assumes text-mode file; removes NUL-bytes"
    if isinstance(csv_file, str):
        file_obj = open(csv_file, *args, **kwds)
    else:
        file_obj = csv_file
    for line in file_obj:
        yield line.replace('\x00','')
    file_obj.close()

But your problem is probably caused by a utf-16 encoded file.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!