I am running 32-bit Windows 7 and Python 2.7.
I am trying to write a command line Python script that can run from CMD. I am trying to assign a value to sys.argv[1]. The aim of my script is to calculate the MD5 hash value of a file. This file will be inputted when the script is invoked in the command line and so, sys.argv[1] should represent the file to be hashed.
Here's my code below: 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)
Whenver I run this script, I receive an error: filename = sys.argv[1] IndexError: list index out of range
To call my script, I have been writing "script.py test.txt" for example. Both the script and the source file are in the same directory. I have tested len(sys.argv) and it only comes back as containing one value, that being the python script name.
Any suggestions? I can only assume it is how I am invoking the code through CMD