[英]How to print stdout excerpt in IPython
在 Linux 終端中,當一個命令的輸出太長而無法在一頁中讀取時,我可以這樣做:
cat file | less
這樣我就可以閱讀和上下滾動 cat 文件的輸出。
我怎樣才能在 IPython 中做到這一點?
例如,我嘗試了這個,但它沒有用:
whos | less
我最初的問題是,通過 Shift+Page Up 可以看到whos
的輸出太多,我不想更改滾動緩沖區。
在 IPython 中,您可以使用%page obj
使用標准尋呼機(通常是less
)顯示對象obj
。 或者,您可以增加終端的滾動緩沖區,這在任何情況下都可能很方便。
%page obj
-- 顯示對象類似於 IPython 默認顯示(repr-like),如果輸出大小需要,使用分頁器
%page -r obj
-- 顯示類似於打印的對象,如果大小需要,使用分頁器
%page
只能采用普通名稱或屬性引用。 它不能評估任意表達式,但您可以使用臨時變量來解決此限制L
tmp = ex * pr + ess - ion
%page tmp
尋呼機的使用應該是自動的。
從手冊:
要將 less 配置為默認尋呼機,請執行以下操作:
- 將環境 PAGER 變量設置為 less。
- 將環境 LESS 變量設置為 -r (以及默認情況下您總是希望傳遞給 less 的任何其他選項)。 這告訴我們如何正確解釋控制序列,這是如何將顏色信息提供給您的終端。
對於 bash shell,將以下行添加到您的 ~/.bashrc 文件中:
export PAGER=less export LESS=-r
在我的 IPython(7.21 版)上,管道確實有效,在!
字首。
基本用法:
!cat ~/.vimrc | less
甚至可以使用 python 變量替換:
# send `some_large_python_str` to pastebin
!echo "{some_large_python_str}" | pastebin
請注意在替換{...}
周圍使用引號"
。
系統外殼訪問
任何以 ! 開頭的輸入行字符被逐字傳遞(當然,減去!)到底層操作系統。 例如,輸入 !ls 將在當前目錄中運行 'ls'。
來源:http: //ipython.scipy.org/doc/rel-0.9.1/html/interactive/reference.html#id1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.