7

终端:

python test.py blah='blah'

在 test.py 中

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

blah arg 如何保留它的 '' 或者
有没有办法知道一个 arg 是用 "" 还是 '' 包裹的?

4

2 回答 2

14

您的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'"]
于 2013-10-01T15:33:54.227 回答
1

也许

python test.py blah="'blah'"
于 2013-10-01T15:36:45.500 回答