簡體   English   中英

如何在 IPython 中打印標准輸出摘錄

[英]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 配置為默認尋呼機,請執行以下操作:

  1. 將環境 PAGER 變量設置為 less。
  2. 將環境 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM