终端:
python test.py blah='blah'
在 test.py 中
print sys.argv
['test.py', 'blah=blah'] <------------
blah arg 如何保留它的 '' 或者
有没有办法知道一个 arg 是用 "" 还是 '' 包裹的?
您的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'"]
也许
python test.py blah="'blah'"