Python。如何将文本作为超链接打印到控制台?

Dan*_*har 6 python hyperlink console-application

我正在开发一个控制台应用程序。我的应用程序使用urwid lib。在某些情况下,我需要将很长的超链接显示为表格列内的短文本。当我单击列内的文本时,我想在浏览器中打开链接。

所以,我的问题是:

是否可以将文本作为超链接打印到控制台?

您能否提供一个小示例,说明如何使用 python 将文本打印为超链接?

Way*_*oor 14

有点晚了,但现在完全有一种方法可以做到这一点,无需诅咒或任何东西,只需来自终端模拟器的纯文本和协作。

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)
Run Code Online (Sandbox Code Playgroud)

调用该函数link('https://example.com/')以获得简单、可点击的链接或link('https://example.com/', 'example')自定义标签。

请注意,您的终端中的链接带有微弱的下划线,并且并非所有链接都支持该功能。


Loï*_*oïc 3

是的,使用一些工具(例如 gNewt 或 Curses),您可以创建一个按钮并“单击”执行一个操作(例如打开浏览器访问给定的 URL)。

gNewt: http: //gnewt.sourceforge.net/

nCurses:https://docs.python.org/3.7/library/curses.html

否则,终端应用程序将管理您提供的文本,如果它没有实现 uri 的识别,您的程序将无法按您的意愿运行。

  • 它应该是!使用小部件:http://urwid.org/reference/widget.html 请参阅“set_text()”和“mouse_event()” (2认同)