2016-07-21 2 views
-1

以下は私のコードですが、達成しようとしているのはコードが機能するすべてのファイルのMD5ハッシュを生成しているOSですC:\からファイルを実行しようとすると、 "ioerror errno 13 permission denied: 'C:\ pagefile.sys'というタイトルのエラーが管理者として実行できますか?私が動作しない管理者としてcmdを実行しても、事前に感謝します。ioerror errno 13アクセスが拒否されました: 'C:\ pagefile.sys'

import os, hashlib 

current_dir = os.getcwd() 
for root,dirs,files in os.walk(current_dir): 
    for f in files: 
     current_file = os.path.join(root,f) 
     H = hashlib.md5() 

     with open(current_file) as FIN: 
      H.update(FIN.read()) 
      with open("gethashes.txt", "a") as myfile: 
       myfile.write(current_file),myfile.write(",  "),myfile.write(H.hexdigest()),myfile.write("\n") 

     print current_file, H.hexdigest() 
+0

ファイルが「ロックされていない場合」:http://stackoverflow.com/questions/19672352/how-to-run-python-script-with-elevated-privilege-on-windows – dsgdfg

+1

* pagefile.sys *はスキップしました。あなたがそれを読むことができたとしても、内容はいつでも変更され、生成されたmd5ハッシュは間違っています。 –

+0

@ J.J.Hakalaが言っていることに加えて、あなたがそれを読んでいるときに変わることさえあるかもしれません。 – Braiam

答えて

0

エラー - 許可が拒否されました - コンテンツのmd5を取得するためにファイルを読む必要があるためです。私たちには、読者の許可がない場合が常にあります。

import os, hashlib 

def md5_chk(current_file): 
    try: 
     md5 = '' 
     err = '' 
     H = hashlib.md5() 
     with open(current_file) as FIN: 
      H.update(FIN.read()) 
      md5 = H.hexdigest() 
    except Exception, e: 
     md5 = None 
     err = str(e) 
     print err 
    return md5,err 

if __name__ == '__main__':  
    current_dir = os.getcwd() 
    for root,dirs,files in os.walk(current_dir): 
     with open("G://gethashes.txt", "a") as myfile: 
      for f in files: 
       current_file = os.path.join(root,f) 
       md5_val,err = md5_chk(current_file) 
       if md5_val is not None: 
        myfile.write(current_file),myfile.write(", "),myfile.write(md5_val),myfile.write("\n") 
        print current_file, md5_val 
       else: 
        myfile.write(current_file),myfile.write(", "),myfile.write("Error - " + str(err)),myfile.write("\n") 
        print current_file, str(err) 

有用かどうか教えてください。

+0

このコードを実行すると、次のエラーが発生します。 ValueError:閉じたファイルに対する入出力操作。 しかし、私がmyfileとしてこの行を "open(" gethashes.txt "、" a ")に含めると、次のようなエラーメッセージが表示されます。IOError:[Errno 13] Permission denied: C:\\ Boot \\ BCD ' – dperrie

+0

@dperrie - コードを更新しました。確認してお知らせください –

関連する問題