我正在使用32位的 Windows 7 和 Python 2.7。
我尝试编写一个可以在命令行中运行的Python脚本。我试图将一个值赋给sys.argv[1]。我的脚本的目的是计算一个文件的MD5哈希值。这个文件将在脚本被调用时从命令行输入,因此,sys.argv[1]应该代表要进行哈希的文件。
下面是我的代码:
import sys
import hashlib
filename = sys.argv[1]
def md5Checksum(filePath):
fh = open(filePath, 'rb')
m = hashlib.md5()
while True:
data = fh.read(8192)
if not data:
break
m.update(data)
return m.hexdigest()
# print len(sys.argv)
print 'The MD5 checksum of text.txt is', md5Checksum(filename)
每次运行这个脚本时,我都会收到一个错误提示:
filename = sys.argv[1]
IndexError: list index out of range
要调用我的脚本,例如“script.py test.txt”,我已经写好了。脚本和源文件都在同一个目录中。我测试了len(sys.argv),但它只返回一个值,即Python脚本名称。
有什么建议吗?我只能假设是我通过CMD调用代码的方式不对。
with open(filePath, 'rb') as fh:
。 - wim