Iterdecode跳过fi中的行

2024-09-29 19:21:09 发布

您现在位置:Python中文网/ 问答频道 /正文

从zip读取.txt文件并使用iterdecode逐行读取时,itercode跳过的不是空的奇数行。你知道吗

with zipfile.ZipFile('path/file.zip', 'r') as zipobj:
    for current_file in zipobj.namelist():
        file = zipobj.open(current_file)
        for line in codecs.iterdecode(file, 'latin-1'): #Latin-1 for accents
            print(line)

我的文件是.txt文件,对于每个文件:

line 1
line 2
line 3
line 4
line 5, etc.

print(line) gives:

line 1
line 3
line 5, etc.

在我使用之前文件.open(没有iterdecodes)它工作得很好,但是我需要从.zip读取。你知道吗

谢谢。你知道吗


Tags: 文件intxtforlineetcopencurrent
1条回答
网友
1楼 · 发布于 2024-09-29 19:21:09

我用this post中的一个答案解决了这个问题。我会在这里张贴的解决方案,以及它不那么明显的其他职位(不是公认的解决方案无论如何)。你知道吗

import io
with zipfile.ZipFile('path/file.zip', 'r') as zipobj:
    for name in zipobj.namelist():
        with zipobj.open(name) as readfile:
            for line in io.TextIOWrapper(readfile, 'latin-1'):
                print(line)

现在所有行都正确打印。你知道吗

相关问题 更多 >

    热门问题