所以我试图将{Jupyter Notebook中的一些单元格In [429]: df[['GradeColText', 'GradeColNum']] = df['GradeCol'].str.rsplit(',', expand=True)
In [432]: df.drop(['GradeCol'], axis=1, inplace=True); df
Out[432]:
GradeColText GradeColNum
0 BVCS 105308.248
重定向到this的文件,然后用this取消其余的单元格。第一组单元格的输出就像它的意图一样落在文件中。取消命令stdout
之后的第二组单元格没有输出,似乎什么也没做,但我后来意识到它正在启动笔记本电脑的终端登陆。
它完全适用于Python解释器,具有完全相同的Python:
sys.stdout = sys.__stdout__
Jupyter笔记本中的类似方法是在终端中提供:
(miniconda3-latest) cardamom@pegasus:~/Documents/project1 $ python
Python 3.6.0 |Continuum Analytics, Inc.| (default, Dec 23 2016, 12:22:00)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.stdout = open('stdout.txt', 'w')
>>> print("a")
>>> print("a")
>>> print("a")
>>> sys.stdout = sys.__stdout__
>>> print ("b")
b
>>> print ("b")
b
>>> print ("b")
b
>>> # lots of a's are in the file and no b's
如何调整此代码,以便在重置之后,我会将b出现在输出通常而不是终端的单元格下?
答案 0 :(得分:4)
我无法对此进行测试,但我看到的唯一解释是sys.__stdout__
不 ipykernel.iostream.OutStream
,而是重新路由/修改过的文件对象以便能够将数据放入单元格(您的注释表明它是sys.__stdout__
实例)。
因此,您应该存储sys.stdout
的引用,而不是重置为import sys
old_stdout = sys.stdout
sys.stdout = open('stdout.txt', 'w')
...
sys.stdout = old_stdout
:
final TextView textview= (TextView) findViewById(R.id.text1);
textview.setText("Menu item selected -> " + position);
请注意,此方法也适用于标准终端。