我正在开发控制台应用程序。我的应用程序使用 urwid lib。在某些情况下,我需要将很长的超链接显示为表列内的短文本。我想在单击列内的文本时在浏览器中打开链接。
所以,我的问题是:
可以将文本作为超链接打印到控制台吗?
您能否提供一个如何使用 python 将文本打印为超链接的小示例?
有点晚了,但现在完全有办法做到这一点,无需诅咒或任何东西,只需来自终端模拟器的纯文本和协作。
def link(uri, label=None):
if label is None:
label = uri
parameters = ''
# OSC 8 ; params ; URI ST <name> OSC 8 ;; ST
escape_mask = '\033]8;{};{}\033\\{}\033]8;;\033\\'
return escape_mask.format(parameters, uri, label)
使用
link('https://example.com/')
调用该函数以获得简单的可点击链接,或使用 link('https://example.com/', 'example')
获得自定义标签。
请注意,您的终端中的链接带有微弱的下划线,并非所有链接都支持该功能。
是的,使用一些工具,如 gNewt 或 Curses,您可以创建一个按钮并“单击”执行一个操作(例如打开浏览器到给定的 URL)。
gNewt:http://gnewt.sourceforge.net/
nCurses:https://docs.python.org/3.7/library/curses.html
否则,终端应用程序将管理您提供的文本,如果它没有实现 uri 的识别,您的程序将无法按您的意愿运行。
不,有些控制台可以识别网址并将其转换为可点击的超链接。您所能做的就是在您的 url 中添加 http:// 以便轻松识别控制台应用程序。
另请参阅 bash 如何识别链接?