看板 Python 關於我們 聯絡資訊
// 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)