簡體   English   中英

IPython Notebook中的Stdout與CLI IPython

[英]Stdout in IPython notebook vs CLI IPython

從筆記本電腦單元運行時,不顯示命令結果。

從IPython筆記本:

os.system("pwd")
0 <-沒有錯誤

從CLI調用的IPython中:

In [15]: os.system("pwd")
/Users/joe
Out[15]: 0 <-無錯誤

我希望從筆記本電腦單元運行命令時會顯示/Users/joe 缺少了什么?

謝謝你。

在這里解釋:

當您使用os.system時,它不是從新進程中捕獲stdout / stderr。 在終端中,這是可行的,因為stdout和stderr只是直接進入終端,而Python對此一無所知。 在筆記本中則沒有,因為內核只能轉發它知道的stdout / stderr。

解決該問題的方法是使用subprocess

>>> import subprocess
>>> subprocess.check_output(["pwd"])
/Users/joe

IPython(筆記本)對此有一個解決方案:

In [1]: %pwd

'/Users/xxx/tmp'

您還可以調用任何shell命令:

In [2]: !pwd

'/Users/xxx/tmp'

在筆記本中,您還可以使用bash命令運行整個單元:

In [3]: %%bash
        pwd 
        ls

'/Users/xxx/tmp'
file1.txt
file2.txt

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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