我正在开发一个控制台应用程序。我的应用程序使用 urwid 库。在某些情况下,我需要将很长的超链接显示为表列中的短文本。当我点击列内的文本时,我想在浏览器中打开链接。
所以,我的问题是:
可以将文本打印为控制台的超链接吗?
你能提供一个小例子来说明如何使用 python 将文本打印为超链接吗?
原文由 Danila Ganchar 发布,翻译遵循 CC BY-SA 4.0 许可协议
我正在开发一个控制台应用程序。我的应用程序使用 urwid 库。在某些情况下,我需要将很长的超链接显示为表列中的短文本。当我点击列内的文本时,我想在浏览器中打开链接。
所以,我的问题是:
可以将文本打印为控制台的超链接吗?
你能提供一个小例子来说明如何使用 python 将文本打印为超链接吗?
原文由 Danila Ganchar 发布,翻译遵循 CC BY-SA 4.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 许可协议
2 回答5.3k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
4 回答1.5k 阅读✓ 已解决
3 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
2 回答948 阅读✓ 已解决
1 回答1.8k 阅读✓ 已解决
是的,使用一些工具,如 gNewt 或 Curses,您可以创建一个按钮并“点击”执行操作(例如打开浏览器到给定的 url)。
gNewt: http ://gnewt.sourceforge.net/
nCurses: https ://docs.python.org/3.7/library/curses.html
否则,终端应用程序将管理您提供的文本,如果它不实现 uri 的识别,您的程序将无法按您的意愿运行。