使用Google Collaboratoy(可乐)作为Notebook,某些单元格产生的长行文本大于屏幕分辨率,因此显示的滚动条没有换行。
有人知道如何在不使用滚动条的情况下激活自动换行以查看所有文本吗?
先谢谢了。
关于
答案 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)
即可使用它。