终端:
python test.py blah='blah'
在test.py中
print sys.argv
['test.py', 'blah=blah'] <------------
blah arg如何保留它的'或OR 有没有办法知道arg是用“”还是“?”包裹?
答案 0 :(得分:12)
您的 shell 在调用Python之前删除了引号。这不是Python可以控制的。
添加更多报价:
python test.py "blah='blah'"
也可以放在参数的任何位置:
python test.py blah="'blah'"
或者您可以使用反斜杠转义:
python test.py blah=\'blah\'
保护它们。这取决于您用于运行命令的确切shell。
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'"]
答案 1 :(得分:1)
也许
python test.py blah="'blah'"