0
我想寫一個小程序來獲取一些文件的校驗和。使用代碼over here,我做了這個:爲什麼我的校驗和計算器停止打印?
import hashlib
import sys
from functools import partial
def md5sum(filename):
with open(filename, mode='rb') as f:
d = hashlib.md5()
for buf in iter(partial(f.read, 128), b''):
d.update(buf)
return d.hexdigest()
print(md5sum(sys.argv[0]))
該代碼工作正常。然而,當我嘗試添加像這樣SHA1支持:
import hashlib
import sys
from functools import partial
def md5sum(filename):
with open(filename, mode='rb') as f:
d = hashlib.md5()
for buf in iter(partial(f.read, 128), b''):
d.update(buf)
return d.hexdigest()
def sha1sum(filename):
with open(filename, mode='rb') as f:
d = hashlib.sha1()
for buf in iter(partial(f.read, 128), b''):
d.update(buf)
return d.hexdigest()
if sys.argv[0] == 'md5':
print(md5sum(sys.argv[1]))
elif sys.argv[0] == 'sha1':
print(sha1sum(sys.argv[1]))
停止打印輸出(用於MD5和SHA1)。我在這裏做錯了什麼?
嘗試在最後的'if'測試之前放置'print(sys.argv [0])';你可能沒有得到你認爲你的系統參數(或者你應該使用'sys.argv [1]'代替)。 –
我一直傾向於使用'optparse'作爲命令行參數,只是我的看法。這樣你就不必擔心所有的索引。 –