2017-08-29 119 views
1

我寫了一個簡單的python腳本來散列文件並輸出結果。但是,當我運行腳本(python scriptname.py)時,我沒有得到任何輸出(期望它打印校驗和)。我也沒有從控制檯得到任何錯誤。Python腳本,沒有輸出?

我在做什麼錯?

#!/usr/bin/env python 

import hashlib 
import sys 

def sha256_checksum(filename, block_size=65536): 

    sha256 = hashlib.sha256() 
    filename = '/Desktop/testfile.txt' 

    with open(filename, 'rb') as f: 
     for block in iter(lambda: f.read(block_size), b''): 
      sha256.update(block) 
    return sha256.hexdigest() 

def main(): 
    for f in sys.argv[1:]: 
     checksum = sha256_checksum(f) 
     print(f + '\t' + checksum) 

if __name__ == '__main__': 
    main() 
+0

你期待什麼其他的輸出?什麼不工作? – Carcigenicate

+0

我希望文件的校驗和/散列可以用行打印:print(f +'\ t'+ checksum) – arcade16

+0

哎呀,對不起,讀「希望它打印校驗和」爲「除了打印校驗」。 'sys.argv [1:]'的價值是什麼? – Carcigenicate

回答

3

DEF主(): 在sys.argv中F [1:]:

腳本預期參數。如果你運行它沒有任何爭論,你沒有看到任何輸出。 主體假設你的散列但在散列函數提供的文件列表,你硬編碼

名=「/Desktop/testfile.txt」

所以,如果你想通過文件散列作爲腳本參數刪除行

文件名= '/Desktop/testfile.txt'

和運行

python scriptname.py '/Desktop/testfile.txt' 
+0

這工作,謝謝。也沒有引用文件的完整路徑。 – arcade16