2015-11-19 38 views
0

为什么这行会在bash脚本中给出错误?使用Python在bash脚本中漂亮地打印

$ python -c "print "{:02d}".format(3)" 

    File "<string>", line 1 
    print {:02d}.format(3) 
    ^
SyntaxError: invalid syntax 

我直接在终端输入。

虽然在python控制台:

>>> print "{:02d}".format(1) 
01 
+0

你不能“嵌套”这样的双引号。内部两个引号没有传递给python,它们与shell的第一个和最后一个引号进行配对,并被删除,所以python将'print {:02d} .format(3)'看作要运行的代码。 –

+0

糟糕。啊!是。他们正在配对。愚蠢的我! 感谢您指点@EtanReisner。 :) –

+0

@AbhishekTripathi随时点击附近的答案附近的任何答案接近回答这个问题。在StackOverflow上接受答案的历史证明会鼓励更多人回答您的后续问题。 – ChrisGuest

回答

3

您正在使用bash中双引号,并试图在Python中使用双引号了。然而,bash似乎将这个解释为没有任何嵌套的两组双引号,并且它们被剥离出来并且不能到达python解释器。因此,Python看到这一点,并提出了一个语法错误:

print {:02d}.format(3) 

尝试在bash中使用单引号,而在蟒蛇的两倍。这将比避免双引号更简单。

python -c 'print "{:02d}".format(3)'