[問題] python -c 接的程式碼如何換行
// 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
→
01/20 00:57, , 1F
01/20 00:57, 1F
→
01/20 00:57, , 2F
01/20 00:57, 2F
稍微補充一下 我想問的其實是 如何取得.py執行後的output
並維持排版顯示在stdout中(這樣pipe給其他程式才好處理)
→
01/20 01:01, , 3F
01/20 01:01, 3F
→
01/20 01:02, , 4F
01/20 01:02, 4F
謝謝~我去試試看
→
01/20 01:03, , 5F
01/20 01:03, 5F
我寫了一隻小程式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)
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):