PythonF字符串以不同的方式处理terminal和jupyter之间的新行
我有一个函数,可以将音频设备信息格式打印到一个类似f字符串的表格中 这是一个例子:PythonF字符串以不同的方式处理terminal和jupyter之间的新行,python,jupyter-notebook,Python,Jupyter Notebook,我有一个函数,可以将音频设备信息格式打印到一个类似f字符串的表格中 这是一个例子: line1 = (f"ID {'Device Name':25}{'INP':4}{'OUT':4} SR INP-(Lo|Hi) OUT-(Lo/Hi) (Latency in ms)") lines = [line1] p1 = f"{0:<4g}{'INPUT':24}{'1':4}{'2':4}" p2 = f"{'44100'}" p3 = f"{'4.21'} {'10.33'}"
line1 = (f"ID {'Device Name':25}{'INP':4}{'OUT':4} SR INP-(Lo|Hi) OUT-(Lo/Hi) (Latency in ms)")
lines = [line1]
p1 = f"{0:<4g}{'INPUT':24}{'1':4}{'2':4}"
p2 = f"{'44100'}"
p3 = f"{'4.21'} {'10.33'}"
p4 = f"{'3.3'} {'6.6'}"
lines.append(p1 + p2 + p3 + p4)
但是在终端中,打印(行)
变成了一条长行
['ID Device Name INP OUT SR INP-(Lo|Hi) OUT-(Lo/Hi) (Latency in ms)', '0 INPUT 1 2 441004.21 10.333.3 6.6']
我不得不加入新线,以打破这条线:
lines = "\n".join(lines)
如何在terminal和jupyter中获得一致的打印输出?非常感谢,因为您没有在jupyter中使用print命令。如果希望在jupyter和console中使用print命令获得相同的输出,请尝试以下操作:
from IPython.display import display, HTML
display(lines)
或
这是因为您没有在jupyter中使用print命令。如果希望在jupyter和console中使用print命令获得相同的输出,请尝试以下操作:
from IPython.display import display, HTML
display(lines)
或
在python3(不确定python2)中,有一个运算符用于此类打印,它位于列表之前
print(*行,sep='\n')
在python3(不确定python2)中,有一个运算符用于此类打印,它位于列表之前
print(*行,sep='\n')
您是否也在终端中调用打印(行)
?如果只输入行
,则打印的是repr
版本。对于字符串,这将显示所有字符,包括文本“\n”
字符。是的,我还在终端中调用print(行)。我得到了一个逗号分隔的长线条,我很难复制这个。我在jupyter笔记本中获得的输出与在terminal中相同:打印(行)
显示行列表(如您在终端输出中看到的)。@SyntaxVoid,是的,您是对的。我有一个返回行的函数。在Jupyter上,我刚刚调用了这个函数,它打印了repr版本。这是我想要的格式。那么在终端中,有没有一种方法可以打印repr版本?我尝试打印(DeVice),但是没有LUKYU可以考虑一个不同的选项。尝试一些类似于获得漂亮表格的方法。您是否也在终端中调用print(lines)
?如果只输入行
,则打印的是repr
版本。对于字符串,这将显示所有字符,包括文本“\n”
字符。是的,我还在终端中调用print(行)。我得到了一个逗号分隔的长线条,我很难复制这个。我在jupyter笔记本中获得的输出与在terminal中相同:打印(行)
显示行列表(如您在终端输出中看到的)。@SyntaxVoid,是的,您是对的。我有一个返回行的函数。在Jupyter上,我刚刚调用了这个函数,它打印了repr版本。这是我想要的格式。那么在终端中,有没有一种方法可以打印repr版本?我尝试打印(DeVice),但是没有LUKYU可以考虑一个不同的选项。试着找些好桌子,这太棒了。非常感谢。这太棒了。非常感谢。
display(HTML(lines.to_html()))