作者Holocaust123 (奔跑的蜗牛)
看板Python
标题[问题] python -c 接的程式码如何换行
时间Thu Jan 20 00:45:45 2011
// example.py (随便举例的)
from copy import deepcopy;
class sequence():
def __init__(self, numbers):
self.numbers = deepcopy(numbers)
numbers = []
for i in range(10):
if i%2==0:
print i
numbers.append(i)
print
sum = 0
my_sequence = sequence(numbers)
for i in my_sequence.numbers:
sum = sum + i
print i, sum
print
print 'sum =', sum
-----------------------------------------------
想用python -c执行example.py, 碰上一点问题
(下面这是一整行, 没有断行)
$ python -c 'from copy import deepcopy; class sequence(): def __init__(__self__, numbers): __self__.numbers = deepcopy(numbers); numbers = []; for i in range(10): if i%2 ==0: print i; number.append(i); print; print sum = 0; my_sequence = sequence(numbers); for i in my_sequence.numbers: sum = sum + i; print i, sum; print; print 'sum =', sum; '
请问:
1. 深蓝色部份在class的indent内, 浅蓝色部份则在class的indent外.
在python -c时, 要怎麽写才能区分谁跟谁在同一个indent block呢?
2. python -c '
...'
有办法在
...里面使用单引号吗?
(我在bash下试着用反斜线escape似乎不成功)
反之, 有办法在 python -c "..." 里面用双引号吗?
3. 有办法把
python -c '..........'
改成
python -c '..
..
..
..
..'
吗?
不然好长一串, 不易看懂也不易debug
(在每行後面加反斜线似乎不work)
4.
// example_2.py
print """
1 22 333 4444 55555
a bb ccc dddd eeeee
A BB CCC DDDD EEEEE
"""
// test.sh
print(){
code=`python example_2.py`;
echo $code;
}
$ bash test.sh
1 22 333 4444 55555 a bb ccc dddd eeeee A BB CCC DDDD EEEEE
印出来的结果, 换行符号都被strip掉了.
请问有办法保持 example2_.py 的 output 排版吗?
感谢回答~~
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.30.46
1F:→ uranusjr:最後一个问题, 换行符号消失是在 shell script 里发生的, 01/20 00:57
2F:→ uranusjr:不是 python 的原因 01/20 00:57
稍微补充一下 我想问的其实是 如何取得.py执行後的output
并维持排版显示在stdout中(这样pipe给其他程式才好处理)
3F:→ uranusjr:第二个问题可以改用 python -c "..." 这样 ... 里面就可 01/20 01:01
4F:→ uranusjr:以用单引号或双引号, 这是 shell 的解读问题 01/20 01:02
谢谢~我去试试看
5F:→ uranusjr:不过我想问一下坚持用 -c 的理由是什麽... 01/20 01:03
我写了一只小程式foo.py , 想把它"嵌入".bashrc的某个function bar:
bar()
{
output=`python -c "..."` # 这边用python比较好处理. 其实也可以改成:
# output=`python foo.py`
# 但, foo.py的内容大概也不会改变了,
# 故想把程式码嵌进来, 就不需保留foo.py
# 然後用bash script处理output
# blah blah ...
}
※ 编辑: Holocaust123 来自: 140.112.30.46 (01/21 04:49)