Аргументы командной строки 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

Ответы на вопрос(4)

Ваш ответ на вопрос