StringIO的'rU'模式(在未引用字段中看到的换行符)

问题描述 投票:0回答:2

我试图逐行解析gzip文件:

with gzip.open(obj.get()['Body'])as f:

    for line in f:
        line=StringIO(line.decode("utf-8"))
        line=csv.reader(line,delimiter=',')

        for line1 in line:

         #some logic

但对于一些文件我有错误:

new-line character seen in unquoted field - do you need to open the file in universal-newline mode?

当我尝试在newlline模式下打开时:

csv.reader(open(line, 'rU'), delimiter=',')

我有:

expected str, bytes or os.PathLike object, not _io.StringIO

我希望包含'\ r'的所有字段都在该字段中作为字符串值的一部分。如何解决这个问题?

python csv gzip stringio
2个回答
0
投票

这样的东西,避免使用csv.readerStringIO模块:

with gzip.open(obj.get()['Body'])as f:
    for line in f:
        line = line.strip()
        line = line.decode("utf-8").split(',')

        for line1 in line:
            #some logic

0
投票

根据https://docs.python.org/3.7/library/io.html?highlight=io#io.StringIO,如果你传递第二个参数为None,它应该识别所有换行符

© www.soinside.com 2019 - 2024. All rights reserved.