如何捕获我期望的特定异常?
How do I catch a particular exception that I am expecting?
我一直在尝试制作一个简单的 zip 文件密码破解程序(只是为了好玩,不是恶意目的)但是我的 try and except 语句不起作用。无论输入什么,它总是导致 except 语句,并且永远不会执行 else(即使 zip 文件确实提取)
import zipfile
k = 0
file = zipfile.ZipFile('john.zip')
def check(i):
p = bytes(i, 'ascii')
try:
file.extractall(pwd=p)
except:
return False
else:
return True
def crack():
x = open('john(1).txt', 'r')
for i in x.readlines():
i.strip('\n')
k = check(i)
if k == True:
print('Password is: ' + k)
break;
x.close()
x.close()`
1) 在 except 块中记录错误。很有帮助。
2) 您正在 'for' 循环中关闭文件。坏主意,因为循环从文件中读取行。
3)最后一行末尾有一个反引号字符(可能是题中的错字):`
我在 crack() 中做了一些更改,如下面的评论所示。这是对我有用的:
…
def crack():
x = open('john(1).txt', 'r')
for i in x.readlines():
i = i.strip() # not just the statement i.strip('\n')
k = check(i)
if k == True:
print('Password is: ' + i) # not print('Password is: ' + k)
…
我一直在尝试制作一个简单的 zip 文件密码破解程序(只是为了好玩,不是恶意目的)但是我的 try and except 语句不起作用。无论输入什么,它总是导致 except 语句,并且永远不会执行 else(即使 zip 文件确实提取)
import zipfile
k = 0
file = zipfile.ZipFile('john.zip')
def check(i):
p = bytes(i, 'ascii')
try:
file.extractall(pwd=p)
except:
return False
else:
return True
def crack():
x = open('john(1).txt', 'r')
for i in x.readlines():
i.strip('\n')
k = check(i)
if k == True:
print('Password is: ' + k)
break;
x.close()
x.close()`
1) 在 except 块中记录错误。很有帮助。
2) 您正在 'for' 循环中关闭文件。坏主意,因为循环从文件中读取行。
3)最后一行末尾有一个反引号字符(可能是题中的错字):`
我在 crack() 中做了一些更改,如下面的评论所示。这是对我有用的:
…
def crack():
x = open('john(1).txt', 'r')
for i in x.readlines():
i = i.strip() # not just the statement i.strip('\n')
k = check(i)
if k == True:
print('Password is: ' + i) # not print('Password is: ' + k)
…