簡體   English   中英

打印按行排序的 zip 文件的注釋,Python

[英]Print comments of files in a zip ordered in lines, Python

這就是事情。 我必須制作一個程序,該程序將首先讀取 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' ' 只是在中間留下字母、符號或空格。 並且在每次輸出中出現 \\n 時將注釋打印成行,只是將它們分開。

字符前的b'...'表示它是一個字節串。 您需要對其進行解碼以生成一個字符串:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM