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 ''?

有帮助吗?

解决方案

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'"]

其他提示

maybe

python test.py blah="'blah'"
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top