Python sys.argv保存''或“”

时间:2013-10-01 15:31:08

标签: python sys

终端:

python test.py blah='blah'

在test.py中

print sys.argv
['test.py', 'blah=blah'] <------------ 

blah arg如何保留它的'或OR 有没有办法知道arg是用“”还是“?”包裹?

2 个答案:

答案 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'"