Терминал:
python test.py blah='blah'
в test.py
print sys.argv
['test.py', 'blah=blah'] <------------
Как может blah arg сохранить свой '' ИЛИ
Есть ли способ узнать, обернут ли arg символом "" или ''?
Терминал:
python test.py blah='blah'
в test.py
print sys.argv
['test.py', 'blah=blah'] <------------
Как может blah arg сохранить свой '' ИЛИ
Есть ли способ узнать, обернут ли arg символом "" или ''?
Ваша оболочка удаляет кавычки перед вызовом Python. Это не то, чем Python может управлять.
Добавьте больше цитат:
python test.py "blah='blah'"
который также может быть помещен в любом месте аргумента:
python test.py blah="'blah'"
или вы можете использовать обратную косую черту:
python test.py blah=\'blah\'
чтобы сохранить их. Это зависит от конкретной оболочки, которую вы используете для запуска команды.
Демо на 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
используются правила, отличные от правил оболочки bash
. У меня мало опыта работы с tsh
или zsh
, но они вполне могут использовать другие правила снова.
- person Martijn Pieters; 01.10.2013
может быть
python test.py blah="'blah'"
python test.py "blah='blah'"
. - person Gumbo   schedule 01.10.2013