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

新手上路,请多包涵

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

所以,我的问题是:

可以将文本打印为控制台的超链接吗?

你能提供一个小例子来说明如何使用 python 将文本打印为超链接吗?

原文由 Danila Ganchar 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1k
2 个回答

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

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

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

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

原文由 Loïc 发布,翻译遵循 CC BY-SA 3.0 许可协议

有点晚了,但现在完全有办法做到这一点,没有诅咒或任何东西,只是纯文本和终端模拟器的协作。

 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') 获得自定义标签。

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

原文由 WayToDoor 发布,翻译遵循 CC BY-SA 4.0 许可协议

推荐问题