作者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
→ uranusjr:最後一個問題, 換行符號消失是在 shell script 裡發生的, 01/20 00:57
→ uranusjr:不是 python 的原因 01/20 00:57
稍微補充一下 我想問的其實是 如何取得.py執行後的output
並維持排版顯示在stdout中(這樣pipe給其他程式才好處理)
→ uranusjr:第二個問題可以改用 python -c "..." 這樣 ... 裡面就可 01/20 01:01
→ uranusjr:以用單引號或雙引號, 這是 shell 的解讀問題 01/20 01:02
謝謝~我去試試看
→ 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)