Skip to content Skip to sidebar Skip to footer

Specifying Arguments With Spaces For Running A Python Script

How to run a python with arguments that would contain spaces? I am using MacOS For example, >python testProgram.py argument 1 argument 2 where 'argument 1' is a single argument

Solution 1:

where "argument 1" is a single argument.

You've basically answered your own question there, "argument 1" is indeed a single argument.

In other words, you need to quote it, something like one of:

python testProgram.py "argument 1"'argument 2'

This isn't actually a Python issue however, it depends on the shell that you're using to run the Python script.

For example, with bash, there are differences between the single and double quotes, the most important of which is probably the various expansions like $HOME - the single quoted variant does not do those expansions.

Solution 2:

Enclose your parameters that contains spaces with double quotes

> python testProgram.py "argument 1""argument 2"

this will work under Windows and Linux so chances are it'll be ok under Mac OS too.

Solution 3:

Or using subprocess from within python itself:

subprocess.call(['python','testProgram.py','argument 1','argument 2'])

But the other answers are more likely to be what you want.

Solution 4:

Try:

>python testProgram.py "argument 1""argument 2"

Post a Comment for "Specifying Arguments With Spaces For Running A Python Script"