我基本上想在列表中搜索关键字,但是我不确定如何修复代码,所以不会出现此错误。
suspicious = []
zip = zipfile.ZipFile("C:/Users/Oliver/Documents/website_urls/urls.zip")
file = zip.read("domain-names.txt")
for x in file.split('\r\n'):
if "apple" in x and "support" in x:
print("suspicious address found"+ x)
suspicious.append(x.replace('\n', ''))
我尚未测试代码,但可以尝试此操作
suspicious = []
zip = zipfile.ZipFile("C:/Users/Oliver/Documents/website_urls/urls.zip")
file = zip.read("domain-names.txt")
for x in file.split(b'\r\n'):
if "apple" in x and "support" in x:
print("suspicious address found"+ x)
suspicious.append(x.replace('\n', ''))
如果您这样更改,它将起作用:
suspicious = []
zip = zipfile.ZipFile("C:/Users/Oliver/Documents/website_urls/urls.zip")
file = zip.read("domain-names.txt")
for x in file.split(b'\r\n'):
strX = str(x)
if "apple" in strX and "support" in strX:
print("suspicious address found"+ strX)
suspicious.append(strX.replace('\n', ''))
zip.read
返回一个bytes
对象。如果您知道它是文本,则应先将其解码为str
对象,然后再进行进一步处理。
zip = zip.read("domain-names.txt").decode()
您可能还想使用io.StringIO
,以便将内容视为文件。
import io
import zipfile
zip = zipfile.ZipFile("C:/Users/Oliver/Documents/website_urls/urls.zip")
file = io.StringIO(zip.read("domain-names.txt").decode())
for x in file:
if "apple" in x and "support" in x:
print("suspicious address found"+ x)
suspicious.append(x.rstrip('\n'))
这是因为您正在混合str和字节。的值是字节,因此您不能将其分割为字符串('\ r \ n')。您在这里有2个选择:
所以简单的改变就是这个
suspicious = [] zip = zipfile.ZipFile("C:/Users/Oliver/Documents/website_urls/urls.zip") file = zip.read("domain-names.txt") for x in file.decode("utf-8").split('\r\n'): if "apple" in x and "support" in x: print("suspicious address found"+ x) suspicious.append(x.replace('\n', ''))
基于字节的方法:
suspicious = []
zip = zipfile.ZipFile("C:/Users/Oliver/Documents/website_urls/urls.zip")
file = zip.read("domain-names.txt")
for x in file.split(b'\r\n'):
if b"apple" in x and b"support" in x:
print("suspicious address found"+ x)
suspicious.append(x.replace(b'\n', b''))