Я использую 32-разрядную версию Windows 7 и Python 2.7.
Я пытаюсь написать сценарий командной строки Python, который можно запускать из CMD. Я пытаюсь присвоить значение 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