Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Python Command Line Arguments (Windows)

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

like image 518
thefragileomen Avatar asked Mar 26 '12 22:03

thefragileomen


People also ask

How do I use Python command-line arguments?

To access command-line arguments from within a Python program, first import the sys package. You can then refer to the full set of command-line arguments, including the function name itself, by referring to a list named argv. In either case, argv refers to a list of command-line arguments, all stored as strings.

Does Python have command-line arguments?

Python exposes a mechanism to capture and extract your Python command line arguments. These values can be used to modify the behavior of a program. For example, if your program processes data read from a file, then you can pass the name of the file to your program, rather than hard-coding the value in your source code.

Can you use Python in Windows command prompt?

Alternatively, it will be available from any Command Prompt or PowerShell session by typing python . Further, pip and IDLE may be used by typing pip or idle . IDLE can also be found in Start.

How do I run a Python script from command-line in Windows 10?

To run Python scripts with the python command, you need to open a command-line and type in the word python , or python3 if you have both versions, followed by the path to your script, just like this: $ python3 hello.py Hello World! If everything works okay, after you press Enter , you'll see the phrase Hello World!


1 Answers

You should check that in your registry the way you have associated the files is correct, for example:

[HKEY_CLASSES_ROOT\Applications\python.exe\shell\open\command]
@="\"C:\\Python27\\python.exe\" \"%1\" %*"
like image 50
mandel Avatar answered Oct 15 '22 11:10

mandel