使用python -c开关的长程序
我想用Python来做一些我之前用bash做的事情。请问可以用-c这个选项来运行比较长的程序吗,比如说一个包含两个语句的for循环?这样我就能像用bash或php一样,直接从命令行使用Python了。
谢谢。
补充说明:我不知道我怎么会漏掉这个,直接输入python -c '然后按回车就能实现我想做的事情。我试过很多不同的写法,还有一种用\的方式,但那不管用,所以我才问这个问题。
例如:$python -c '
>print "x"
>for i in range(3):
> print "y" '
这正是我想要的,虽然Rod的回答也不错。
4 个回答
3
在脚本中使用时,我觉得让Python从标准输入读取脚本会更好,像这样:
#!/bin/bash
python - arg1 arg2 <<END
import sys
print 'Arg:', sys.argv[1:]
END
这里使用了bash的HEREDOC语法。
5
你可以使用复合语句,用分号来分隔这些语句,比如:
python -c "for x in range(0,3) : print x; print x
那么输出结果就是:
0
0
1
1
2
2
8
如果你的底层命令行是bash,那就没问题了,因为你可以在多行中继续输入一个参数,只要你打开的'
(引号)还没有关闭。例如:
$ python -c'for x in range(3):
> if x!=1:
> print x'
0
2
$
这里的>
是bash的默认PS2
,也就是“多行继续提示符”,和$
(也叫PS1
)区分开来,后者是正常的“开始输入命令”的提示符。
如果你不能使用这种多行继续输入的方式,那么多个嵌套的代码块(比如在循环中使用的if
语句)可能会变得很麻烦。