我在互聯網上發現了這段代碼,意在搜索壓縮文件夾中的文本文件以查找匹配項。我跑它空閒,看看它是如何工作的..但我有一個問題,它似乎是這一行:Python解釋器將變量定義爲tulpe時,它是一個字符串?
fname = seed + ".txt"
錯誤消息返回此:
Traceback (most recent call last):
File "C:/Users/[name]/AppData/Local/Programs/Python/Python36-32/zip2.py", line 10, in <module>
fname = seed + ".txt"
TypeError: can only concatenate tuple (not "str") to tuple
下面是代碼:
import re
from zipfile import *
findnothing = re.compile(r"Next nothing is (\d+)").match
comments = []
z = ZipFile("channel.zip", "r")
seed = "90052"
while True:
fname = seed + ".txt"
comments.append(z.getinfo(fname).comment)
guts = z.read(fname)
m = findnothing(guts.decode('utf-8'))
if m:
seed = m.groups(1)
else:
break
print("".join(comments))
我已經搜索了stackoverflow,並沒有發現類似於我的問題。他們大多數認爲變量中的逗號通常會導致編譯器將其視爲一個元組。我不明白爲什麼它說種子是一個元組。沒有逗號,沒有括號,或其他任何可以將它定義爲Python編譯器的元組的東西。我怎樣才能解決這個問題?
在此先感謝
感謝您的回覆並鏈接到文檔!我更改了代碼,並且在連接字符串時不再拋出錯誤。但是,最後我遇到了一個不同的錯誤,我自己也設法解決。我會把我的解決方案放在這裏,以防其他人遇到類似的情況。最後一行代碼返回「TypeError:序列項目0:期望的str實例,找到的字節」我通過將代碼更改爲「print(str(b」「。join(comments)))」來修復它「 – Marty