以行(Python)形式按zip顺序打印文件注释

以行(Python)形式按zip顺序打印文件注释,python,zip,Python,Zip,这就是问题所在。我必须制作一个程序,首先读取zip中的一个文件,在该文件中,它会找到下一个要读取的.txt文件的名称,然后继续,直到它到达一个没有下一个文件名称的文件,所以它只打印内容 我做的很好,但是,在它读取所有文件后,我需要程序打印每个文件读取的注释,所以它应该打印ascii艺术 这就是我遇到麻烦的地方。我所做的是在循环过程中将每个注释附加到一个列表中,最后我将列表映射到一个字符串并将它们连接起来 这是我的代码: import zipfile import re nothing_var

这就是问题所在。我必须制作一个程序,首先读取zip中的一个文件,在该文件中,它会找到下一个要读取的.txt文件的名称,然后继续,直到它到达一个没有下一个文件名称的文件,所以它只打印内容

我做的很好,但是,在它读取所有文件后,我需要程序打印每个文件读取的注释,所以它应该打印ascii艺术

这就是我遇到麻烦的地方。我所做的是在循环过程中将每个注释附加到一个列表中,最后我将列表映射到一个字符串并将它们连接起来

这是我的代码:

import zipfile
import re

nothing_var = "90052"
text = ".txt"
list_files = []
list_comments = []

with zipfile.ZipFile("channel.zip") as file:
    count = len(file.infolist()) - 1
    for var1 in range(count):
        list_comments.append(file.getinfo(str(nothing_var) + ".txt").comment)
        with file.open(str(nothing_var) + ".txt") as archive:
            for line in archive:
                if re.search("\d+", str(line)):
                    nothing_var = re.findall("\d+", str(line))
                    nothing_var = "".join(nothing_var)
                    list_files.append(nothing_var)
                else:
                    print(line)

list_comments = list(map(str, list_comments))

print("".join(list_comments))
这是我得到的输出:

b'Collect the comments.'
b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'\n'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'\n'b'*'b'*'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b'*'b'*'b'\n'b'*'b'*'b' 'b' 'b' 'b'O'b'O'b' 'b' 'b' 'b' 'b'O'b'O'b' 'b' 'b' 'b' 'b'X'b'X'b' 'b' 'b' 'b' 'b' 'b' 'b'Y'b'Y'b'Y'b'Y'b' 'b' 'b' 'b' 'b'G'b'G'b' 'b' 'b' 'b' 'b'G'b'G'b' 'b' 'b'E'b'E'b'E'b'E'b'E'b'E'b' 'b'N'b'N'b' 'b' 'b' 'b' 'b' 'b' 'b'N'b'N'b' 'b' 'b'*'b'*'b'\n'b'*'b'*'b' 'b' 'b' 'b'O'b'O'b' 'b' 'b' 'b' 'b'O'b'O'b' 'b' 'b'X'b'X'b'X'b'X'b'X'b'X'b' 'b' 'b' 'b'Y'b'Y'b'Y'b'Y'b'Y'b'Y'b' 'b' 'b' 'b'G'b'G'b' 'b' 'b' 'b'G'b'G'b' 'b' 'b' 'b'E'b'E'b'E'b'E'b'E'b'E'b' 'b' 'b'N'b'N'b' 'b' 'b' 'b' 'b'N'b'N'b' 'b' 'b' 'b'*'b'*'b'\n'b'*'b'*'b' 'b' 'b' 'b'O'b'O'b' 'b' 'b' 'b' 'b'O'b'O'b' 'b'X'b'X'b'X'b' 'b' 'b'X'b'X'b'X'b' 'b'Y'b'Y'b'Y'b' 'b' 'b' 'b'Y'b'Y'b' 'b' 'b'G'b'G'b' 'b'G'b'G'b' 'b' 'b' 'b' 'b' 'b'E'b'E'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b'N'b'N'b' 'b' 'b'N'b'N'b' 'b' 'b' 'b' 'b'*'b'*'b'\n'b'*'b'*'b' 'b' 'b' 'b'O'b'O'b'O'b'O'b'O'b'O'b'O'b'O'b' 'b'X'b'X'b' 'b' 'b' 'b' 'b'X'b'X'b' 'b'Y'b'Y'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b'G'b'G'b'G'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b'E'b'E'b'E'b'E'b'E'b' 'b' 'b' 'b' 'b' 'b'N'b'N'b'N'b'N'b' 'b' 'b' 'b' 'b' 'b'*'b'*'b'\n'b'*'b'*'b' 'b' 'b' 'b'O'b'O'b'O'b'O'b'O'b'O'b'O'b'O'b' 'b'X'b'X'b' 'b' 'b' 'b' 'b'X'b'X'b' 'b'Y'b'Y'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b'G'b'G'b'G'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b'E'b'E'b'E'b'E'b'E'b' 'b' 'b' 'b' 'b' 'b' 'b'N'b'N'b' 'b' 'b' 'b' 'b' 'b' 'b'*'b'*'b'\n'b'*'b'*'b' 'b' 'b' 'b'O'b'O'b' 'b' 'b' 'b' 'b'O'b'O'b' 'b'X'b'X'b'X'b' 'b' 'b'X'b'X'b'X'b' 'b'Y'b'Y'b'Y'b' 'b' 'b' 'b'Y'b'Y'b' 'b' 'b'G'b'G'b' 'b'G'b'G'b' 'b' 'b' 'b' 'b' 'b'E'b'E'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b'N'b'N'b' 'b' 'b' 'b' 'b' 'b' 'b'*'b'*'b'\n'b'*'b'*'b' 'b' 'b' 'b'O'b'O'b' 'b' 'b' 'b' 'b'O'b'O'b' 'b' 'b'X'b'X'b'X'b'X'b'X'b'X'b' 'b' 'b' 'b'Y'b'Y'b'Y'b'Y'b'Y'b'Y'b' 'b' 'b' 'b'G'b'G'b' 'b' 'b' 'b'G'b'G'b' 'b' 'b' 'b'E'b'E'b'E'b'E'b'E'b'E'b' 'b' 'b' 'b' 'b' 'b'N'b'N'b' 'b' 'b' 'b' 'b' 'b' 'b'*'b'*'b'\n'b'*'b'*'b' 'b' 'b' 'b'O'b'O'b' 'b' 'b' 'b' 'b'O'b'O'b' 'b' 'b' 'b' 'b'X'b'X'b' 'b' 'b' 'b' 'b' 'b' 'b'Y'b'Y'b'Y'b'Y'b' 'b' 'b' 'b' 'b'G'b'G'b' 'b' 'b' 'b' 'b'G'b'G'b' 'b' 'b'E'b'E'b'E'b'E'b'E'b'E'b' 'b' 'b' 'b' 'b' 'b'N'b'N'b' 'b' 'b' 'b' 'b' 'b' 'b'*'b'*'b'\n'b'*'b'*'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b' 'b'*'b'*'b'\n'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'\n'b' 'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'*'b'\n'
(很抱歉写入完整的输出)

第一行是上次读取文件的内容,没关系


我想要的是从每个评论中去掉b'',只留下字母、符号或中间的空格。并以行的形式打印注释,每次输出中有a时,只需将它们分隔开。

字符前面的
b'…'
表示它是一个字节字符串。您需要对其进行解码以生成字符串:

>>> b"abcde".decode("utf-8") 
'abcde'

完全解决了我的问题。非常感谢。