2016-12-04 39 views
-1

我正在嘗試搜索指定文件夾中的.txt文件,並對使用我的加密算法找到的每個.txt文件進行加密。不過,我似乎無法能夠弄清楚如何將所有的文件夾中找到的.txt文件加密並重新命名如何使用python加密多個文件

這是我與目前

import time, os, sys, encrypt, decrypt, caesarCipher, reverseCipher, vigenereCipher, glob 

def main(): 
    outputFilename = 'ABC.encrypted.txt' 
    mKey = 5 
    myMode = 'encrypt' 


    for root, dirs, files in os.walk('/Ransom'): 
     for file in files: 
      if file.endswith((".txt")): 
      inputFilename = os.path.join(root, file) 

    if not os.path.exists(inputFilename): 
     print('The file %s does not exist. Exiting....' % (inputFilename)) 
     sys.exit() 

    fileObj = open(inputFilename) 
    content = fileObj.read() 
    fileObj.close() 

    print ('%sing...' % (myMode.title())) 

    startTime = time.time() 
    if myMode == 'encrypt': 
     translated = encrypt.encryptMess(mKey, content, myMode) 
    elif myMode == 'decrypt': 
     translated = decrypt.decryptMess(mKey, content, myMode) 

    outputFileObj = open(outputFilename, 'w') 
    outputFileObj.write(translated) 
    outputFileObj.close() 

    print('Done %sing %s (%s characters).' % (myMode, inputFilename, len(content))) 
    print('%sed file is %s.' % (myMode.title(), outputFilename)) 

if __name__ == '__main__': 
    main() 

工作的代碼,我真的很感謝所有幫助引導我實現這一目標。

+0

相同的方式,'print'裏面的'的文件的名稱文件在文件中:循環,你應該在加密方面做同樣的事情。繼續**在'for'循環中進行。 – Dekel

+0

我試過這樣做,但它不起作用。這是我爲os.walk('/ Users/rose_/Desktop/Ransom')中的root,dirs和files創建的代碼: 對於文件中的文件: if file.endswith((「。txt」)): Inputfilename = os.path.join(root,file)) –

+0

用你試過的代碼更新問題 – Dekel

回答

0

這在給定文件夾中的所有文件代碼循環並調用指定的方法,只要該文件是「* .TXT」

import os 

baseUrl = './' 

def encryptFile(filename): 
    # process one file here 
    print baseUrl + filename 

alist = next(os.walk(baseUrl))[2] 
for i in xrange(len(alist)): 
    afile = alist[i] 
    if afile[-4:] == '.txt': 
     encryptFile(afile)