Python。如何将文本作为超链接打印到控制台?
Python. How to print text to console as hyperlink?
我正在开发控制台应用程序。我的应用程序使用 urwid 库。在某些情况下,我需要在 table 列中将非常长的超链接显示为短文本。我想在单击列中的文本时在浏览器中打开链接。
那么,我的问题是:
是否可以将文本作为超链接打印到控制台?
能否提供一个小示例,说明如何使用 python 将文本打印为超链接?
不,某些控制台确实可以识别 url 并将它们转换为可点击的超链接。您所能做的就是通过在您的 url.
中放置一个 http:// 来使控制台应用程序易于识别
另见
How does bash recognize a link?
是的,使用一些工具,例如 gNewt 或 Curses,您可以创建一个按钮并 'on click' 执行一个操作(例如打开浏览器到给定的 url)。
gNewt : http://gnewt.sourceforge.net/
n诅咒:https://docs.python.org/3.7/library/curses.html
否则,终端应用程序将管理您提供的文本,如果它不实现 uri 的识别,您的程序将无法按您的意愿运行。
有点晚了,但现在完全有办法做到这一点,没有诅咒或任何东西,只是纯文本和终端模拟器的协作。
def link(uri, label=None):
if label is None:
label = uri
parameters = ''
# OSC 8 ; params ; URI ST <name> OSC 8 ;; ST
escape_mask = '3]8;{};{}3\{}3]8;;3\'
return escape_mask.format(parameters, uri, label)
使用 link('https://example.com/')
调用该函数以获得简单、可点击的 link,或使用 link('https://example.com/', 'example')
获得自定义标签。
请注意,link在您的终端中带有淡淡的下划线,并非所有终端都支持该功能。
我正在开发控制台应用程序。我的应用程序使用 urwid 库。在某些情况下,我需要在 table 列中将非常长的超链接显示为短文本。我想在单击列中的文本时在浏览器中打开链接。
那么,我的问题是:
是否可以将文本作为超链接打印到控制台?
能否提供一个小示例,说明如何使用 python 将文本打印为超链接?
不,某些控制台确实可以识别 url 并将它们转换为可点击的超链接。您所能做的就是通过在您的 url.
中放置一个 http:// 来使控制台应用程序易于识别另见 How does bash recognize a link?
是的,使用一些工具,例如 gNewt 或 Curses,您可以创建一个按钮并 'on click' 执行一个操作(例如打开浏览器到给定的 url)。
gNewt : http://gnewt.sourceforge.net/
n诅咒:https://docs.python.org/3.7/library/curses.html
否则,终端应用程序将管理您提供的文本,如果它不实现 uri 的识别,您的程序将无法按您的意愿运行。
有点晚了,但现在完全有办法做到这一点,没有诅咒或任何东西,只是纯文本和终端模拟器的协作。
def link(uri, label=None):
if label is None:
label = uri
parameters = ''
# OSC 8 ; params ; URI ST <name> OSC 8 ;; ST
escape_mask = '3]8;{};{}3\{}3]8;;3\'
return escape_mask.format(parameters, uri, label)
使用 link('https://example.com/')
调用该函数以获得简单、可点击的 link,或使用 link('https://example.com/', 'example')
获得自定义标签。
请注意,link在您的终端中带有淡淡的下划线,并非所有终端都支持该功能。