我正在编写一个程序来加密文件并用密钥解密它们。代码:
import random, os, time
#Collecting all files
pad = r'C:\Users\Hugo\Desktop\Malware\Test'
bestand_list = []
for files in next(os.walk(pad))[2]:
bestand_list.append(pad + '\\' + files)
#Random 10 characters making encryption
s = 'abcdefghijklmnopqrstuvxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890!@#$%^&'
sleutel = ''
for i in range(10):
sleutel += random.choice(s)
print(sleutel)
print('The computer is being encrypted')
time.sleep(1)
def Decrypt():
x = 0
decryptie = input('Enter your decryption code: \n')
if (decryptie == sleutel):
for bestand in bestand_list:
for bestand_naam in bestandnaam_list:
locatie = bestand_list[x]
os.rename(bestand_naam, locatie)
x += 1
print ('Your file will now be decrypted')
else:
print ('Unfortunately your file was not decrypted')
def Encrypt():
x = 0
global bestandnaam_list
bestandnaam_list = []
for bestand in bestand_list:
bestand_naam = ''
locatie = bestand_list[x]
for i in range (10):
bestand_naam += random.choice(s)
bestandnaam_list.append(pad + '\\' + bestand_naam)
os.rename(locatie, pad + '\\' + bestand_naam)
x += 1
print('Your files are now encrypted')
Decrypt()
Encrypt()
我遇到的问题是第二个文件通过解密重命名为第一个文件。这会导致FileExistError。可能有些问题:
x += 1
def Decrypt()
中的
如何解决此问题?
编辑:完整追溯: Traceback(最近一次调用最后一次): 在Decrypt文件“crypto.py”,第29行,
os.rename(bestand_naam, locatie)
FileExistsError:[WinError 183]无法创建已存在的文件。
答案 0 :(得分:2)
您的代码中存在多个问题。
def Decrypt():
x = 0
decryptie = input('Enter your decryption code: \n')
if (decryptie == sleutel):
for bestand in bestand_list:
os.rename(bestandnaam_list[x], bestand)
x += 1
print ('Your file will now be decrypted')
else:
print ('Unfortunately your file was not decrypted')
这应该可以解决问题。
顺便提一下,当你提交你的代码时,请打印你正在做什么,为你和我们做什么,并且使用英语varnames因为我不知道什么是sleutel和其他变量名称的意思。
你正在做2个forloops,它给os.rename提供了错误的和多个文件名/路径。
忘记添加此内容,
在def Encrypt
中直接调用Decrypt,将其移到文件的末尾。
像这样:
Encrypt()
Decrypt()