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

5
задан thefragileomen 26 March 2012 в 22:02
поделиться