Я использую 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