在单行命令行中执行Python多行语句

问题:

我使用Python与-c来执行单行循环,即:

$ python -c "for r in range(10): print 'rob'"

这工作正常但是,如果我在for循环之前导入一个模块,我会收到一个语法错误:

$ python -c "import sys; for r in range(10): print 'rob'"
  File "<string>", line 1
    import sys; for r in range(10): print 'rob'
              ^
SyntaxError: invalid syntax

任何想法如何可以修复?
把这个作为一个单行我很重要,以便我可以将它包含在一个Makefile中。

回答:

你可以做

echo -e "import sys\nfor r in range(10): print 'rob'" | python

或输出管道:

python -c "exec(\"import sys\\nfor r in range(10): print 'rob'\")"

要么

(echo "import sys" ; echo "for r in range(10): print 'rob'") | python

或@ SilentGhost’s answer / @Crast’s answer

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: Executing Python multi-line statements in the one-line command-line

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

− 1 = 3