我正在使用13种字符创建8个字符密码的单词表。
我的代码是:
import itertools
import pickle
import pathlib
import time
from typing import TextIO, Tuple
path = pathlib.Path('backup1.pkl')
if path.exists():
inputfile = open("backup1.pkl", "rb")
val_comb = pickle.load(inputfile)
print( val_comb )
time.sleep(3)
f: TextIO=open("all_pass_combo_8_(3).txt","w")
res = itertools.product('abcdefghjklm', repeat=8) .
for i in res:
print( val_comb )
f.write(val_comb)
val_comb = (''.join(i) + "\n")
output = open("backup1.pkl", 'wb')
pickle.dump(val_comb, output)
output.close()
inputfile.close()
f.close()
因此,我需要几个小时才能完成代码的执行。但是,问题是我不能长时间打开计算机。而且,如果我在任何情况下都关闭/中断了该过程,则将组合保存到该实例为止,然后,每当我尝试再次运行该执行时,它将从其初始状态开始。
有些前辈告诉我使用“ pickle()
”来完成我想要的工作,并提供了“ pickle()
项目描述”的正式链接。我阅读了这篇文章,然后跳到YouTube寻求更多帮助。然后,我尝试以您上面可能会看到的格式编辑代码,但是我没有执行我愿意做的事情。
所以,我要做的正是:
我将运行我的程序。它将运行并生成一个单词表。现在,我必须关闭我的电脑。因此,我将不得不终止执行。现在,我想保留(或腌制)我在程序中的进度,当我再次开始执行程序时,它应该从离开程序的同一阶段恢复;例如如果我已在'aaaafhgj'
上将其终止。然后,它应该立即从'aaaafhgk'
开始加入置换和组合,并且不应重复'aaaaaaaa'
,依此类推。但是我的代码正在做我不想做的事情。
答案 0 :(得分:1)
要保存进度,您可以在脚本本身中添加“暂停”,然后保存到文件中。
泡菜的使用示例
import time
import pickle
import os
save_file = "save_file.tmp"
if os.path.exists(save_file):
with open(save_file, "rb") as in_file:
try:
my_array = pickle.loads(in_file.read()) # reload the last operation
except Exception:
my_array = []
else:
my_array = []
while True:
try:
time.sleep(1)
my_array.append("next") # here you can do what you want replace this part
except KeyboardInterrupt, SystemExit:
print my_array
with open(save_file, "wb") as out_file:
out_file.write(pickle.dumps(my_array))
input()
希望能对您有所帮助,显然做到这一点并不容易;)