我使用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中。
你可以的
或带出口管道:
或者
或@SilentGhost's answer/@Crast's answer
问题不在于import语句,而在于for循环之前的任何内容。或者更具体地说,出现在内联块之前的任何内容。
例如,这些都起作用:
如果import是一个语句是一个问题,那么这将起作用,但它不会:
对于您的基本示例,您可以将其重写为:
但是,lambdas只能执行表达式,不能执行语句或多个语句,因此您可能仍然无法执行所需的操作。但是,在生成器表达式、列表理解、lambdas、sys.stdout.write、“map”内置函数和一些创造性的字符串插值之间,您可以执行一些功能强大的单行代码。
问题是,你想走多远,在什么时候写一个小的
.py
文件不是更好,而是由makefile执行?这种样式也可以在makefile中使用(事实上它经常使用)。
或者
在后一种情况下,前面的制表符也会被删除(并且可以实现一些结构化的外观)
而不是EOF可以在一行的开头放置任何没有出现在here文档中的标记词(另请参见bash手册页中的here文档或here)。
相关问题 更多 >
编程相关推荐