协作Google结果中的换行

时间:2019-11-16 11:14:37

标签: google-colaboratory

使用Google Collaboratoy(可乐)作为Notebook,某些单元格产生的长行文本大于屏幕分辨率,因此显示的滚动条没有换行。

enter image description here

有人知道如何在不使用滚动条的情况下激活自动换行以查看所有文本吗?

先谢谢了。

关于

3 个答案:

答案 0 :(得分:3)

通常在我自己的计算机上,我将以下CSS片段放在~/.jupyter/custom/custom.css文件中。

pre {
  white-space: pre-wrap;
}

但是,以上内容不适用于google colab:我尝试创建文件/usr/local/share/jupyter/custom/custom.css,但这没有用。

相反,将其放在笔记本的第一个单元格中。

from IPython.display import HTML, display

def set_css():
  display(HTML('''
  <style>
    pre {
        white-space: pre-wrap;
    }
  </style>
  '''))
get_ipython().events.register('pre_run_cell', set_css)

说明:如Google Colab advanced output get_ipython().events.register('pre_run_cell', <function name>) ...

中所述

定义一个执行钩子,将其加载到我们的自定义set_css()函数中 情况]每次执行单元格时都会自动

我的解释是,您需要指定'pre_run_cell'作为events.register中的第一个参数,这告诉events.register函数您要运行自定义set_css()函数在执行单元格的内容之前。

此答案的灵感来自How to import CSS file into Google Colab notebook (Python3)

答案 1 :(得分:1)

我使用以下代码段:

from IPython.display import HTML, display

def my_css():
   display(HTML("""<style>table.dataframe td{white-space: nowrap;}</style>"""))

get_ipython().events.register('pre_run_cell', my_css)

答案 2 :(得分:0)

我创建了一个函数来帮助您。它适用于List和String。

def set_wrap(N=100):
  ''' create a wrap function for list '''
  def wrap(obj):
    s = str(obj)
    out = '<pre>'
    while True:
      if len(s) < N:
        out += s
        break
      i = s.rfind(' ', 0, N)
      if i==-1:
        i = N
      out += s[:i]+"\n"
      s = s[i:]
    out += "</pre>"
    return out
  ''' register it '''
  Formatter = get_ipython().display_formatter.formatters['text/html']
  Formatter.for_type(list, wrap)
  Formatter.for_type(str, wrap)

您只需调用set_wrap(80)即可使用它。