是否有 IPython line magic 用于捕获单行代码的输出?

问题描述 投票:0回答:1

我需要在 IPython notebook 单元格中捕获单行代码的输出。单元格中还有其他代码行,我不想捕获它们的输出。做这个的最好方式是什么?有没有线魔术可以做到这一点,还是我应该把线移到它自己的单元格?

这是我所追求的一个例子:

在[1]中:

%%capture output

import h2o
h2o.init()

train_fr = h2o.H2OFrame({'a': [1, 2, 3], 'b': [4, 5, 6], 'c': [7, 8, 9]})
test_fr = h2o.H2OFrame({'a': [4], 'b': [7], 'c': [10]})

drf = h2o.estimators.H2ORandomForestEstimator()
drf.train(y = 'c', training_frame = train_fr)

print(drf.model_performance(test_data = test_fr))
h2o.shutdown()

在[2]中:

with open('model_performance.txt', mode = 'w') as file:
    
    file.write(output.stdout) # full of junk

model_performance.txt
的所需内容:

ModelMetricsRegression: drf
** Reported on test data. **

MSE: 1.690000000000002
RMSE: 1.3000000000000007
MAE: 1.3000000000000007
RMSLE: 0.12576938728903375
Mean Residual Deviance: 1.690000000000002
python jupyter-notebook ipython stdout
1个回答
0
投票

我发现这个有同样的问题。我有一个烦人的实用程序输出到 stdout (MoviePy ipython_display),我不想让整个单元格静音(这样 print(f"...) 就不起作用了。

© www.soinside.com 2019 - 2024. All rights reserved.