[問題] python -c 接的程式碼如何換行

看板Python作者 (奔跑的蝸牛)時間13年前 (2011/01/20 00:45), 編輯推噓0(005)
留言5則, 1人參與, 最新討論串1/2 (看更多)
// 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
最後一個問題, 換行符號消失是在 shell script 裡發生的,
01/20 00:57, 1F

01/20 00:57, , 2F
不是 python 的原因
01/20 00:57, 2F
稍微補充一下 我想問的其實是 如何取得.py執行後的output 並維持排版顯示在stdout中(這樣pipe給其他程式才好處理)

01/20 01:01, , 3F
第二個問題可以改用 python -c "..." 這樣 ... 裡面就可
01/20 01:01, 3F

01/20 01:02, , 4F
以用單引號或雙引號, 這是 shell 的解讀問題
01/20 01:02, 4F
謝謝~我去試試看

01/20 01:03, , 5F
不過我想問一下堅持用 -c 的理由是什麼...
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)
文章代碼(AID): #1DDnKyKI (Python)
文章代碼(AID): #1DDnKyKI (Python)