Аргументы командной строки Python (Windows)
Я использую 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