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 ''?
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'"]
cmd
console quoting uses different rules from the bash
shell. I have little experience with tsh
or zsh
but they may well use different rules again. –
Circassia © 2022 - 2024 — McMap. All rights reserved.
python test.py "blah='blah'"
instead. – Sleep