Question

terminal:

python test.py blah='blah'

in test.py

print sys.argv
['test.py', 'blah=blah'] <------------ 

How can blah arg preserve its '' OR
Is there a way to know if an arg is wrap with either "" or ''?

Était-ce utile?

La solution

Your shell removes the quotes before invoking Python. This is not something Python can control.

Add more quotes:

python test.py "blah='blah'"

which can also be placed anywhere in the argument:

python test.py blah="'blah'"

or you could use backslash escapes:

python test.py blah=\'blah\'

to preserve them. This does depend on the exact shell you are using to run the command.

Demo on bash:

$ cat test.py 
import sys
print sys.argv
$ python test.py blah='blah'
['test.py', 'blah=blah']
$ python test.py "blah='blah'"
['test.py', "blah='blah'"]
$ python test.py blah="'blah'"
['test.py', "blah='blah'"]
$ python test.py blah=\'blah\'
['test.py', "blah='blah'"]

Autres conseils

maybe

python test.py blah="'blah'"
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top