代码之家  ›  专栏  ›  技术社区  ›  porton

在python 3中打开url或本地文件

  •  -2
  • porton  · 技术社区  · 6 年前

    我有一根绳子。

    我想要:

    • 如果这个字符串是一个URL,我想打开这个URL。

    • 否则,我想打开一个具有此名称的本地文件。

    • 如果没有这样的对象,则引发异常。

    什么是 对的 在python 3中使用足够简单(如果可能)的方法?

    主要问题是确定字符串是否为URL的正确方法。

    3 回复  |  直到 6 年前
        1
  •  2
  •   blue_note    6 年前

    取决于你所说的URL。如果是网址,通常以 http:// https:// (通常,不管怎样,这些都是你关心的情况)。然而,也有可能是从 ftp:// 或者其他协议。然而,大多数图书馆都接受 尿嘧啶尿路感染 S,其中包括 文件URI 。在该方案中,文件位置看起来像一个以 file:// ,这样您就可以传递字符串,而不关心它是网址还是文件,库将负责处理它。没有直接的方法知道地址是否有效,但是如果地址无效,库将抛出一个异常。

        2
  •  0
  •   whackamadoodle3000    6 年前

    试试这个:

    import os
    import webbrowser
    import requests
    webbrowser.open(s) if os.path.isfile(s) or requests.get(s) else exec("raise Exception")
    
        3
  •  -1
  •   Tom    6 年前

    这还没有测试过,所以将其视为psuedocode。

    if s.startswith('http'):
        # Do something
    elif os.path.isfile(s):
        file = open(s, 'r')
    else:
        raise Exception