[英]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.