2016-12-04 10 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

同じ方法である時はいつでもfile in file: 'ループでは、暗号化に関しても同じことをする必要があります。 ** forループの中で**続けること。 – Dekel

+0

私はそれをやってみましたが、うまくいきません。これは、ファイル内のファイルの場合は : なら、os.walk( '/ Users/rose_/Desktop/Ransom')のルート、ディレクトリ、ファイルに試したコードです。file.endswith(( "txt")): Inputfilename = os.path.join(root、file)) –

+0

試したコードで質問を更新してください – Dekel

答えて

0

このコードの指定したフォルダ内のすべてのファイルを反復処理し、指定されたメソッドを呼び出してファイルには、 ``のための内部のファイルの名前をprint`「* .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) 
関連する問題