【问题标题】:Open URL or local file in Python 3在 Python 3 中打开 URL 或本地文件
【发布时间】:2018-07-24 13:04:13
【问题描述】:

我有一个字符串。

我想要:

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

  • 否则,我想用这个名字打开一个本地文件。

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

在 Python 3 中正确且足够简单(如果可能)的方法是什么?

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

【问题讨论】:

  • 什么是无效的url(比如“poo.gke"),即使它遵循url格式?应该打开它吗?或者通过请求或其他方式检查

标签: python python-3.x url uri


【解决方案1】:

取决于 URL 的含义。如果它是一个网址,它通常以http://https:// 开头(通常,这些都是您关心的情况)。但是,也有可能以 ftp:// 或其他协议开头。但是,大多数库都接受 URI,其中包括 文件 URI。在该方案中,文件位置看起来像一个以file:// 开头的 URL,因此您可以传递您的字符串,而不用关心它是 Web 地址还是文件,库会处理它。没有直接的方法可以知道地址是否有效,但如果不是,库会抛出异常。

【讨论】:

    【解决方案2】:

    试试这个:

    import os
    import webbrowser
    import requests
    webbrowser.open(s) if os.path.isfile(s) or requests.get(s) else exec("raise Exception")
    

    【讨论】:

      【解决方案3】:

      这个还没有测试,所以把它当作伪代码。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-09-20
        • 1970-01-01
        • 2021-08-11
        • 1970-01-01
        • 2015-10-14
        • 1970-01-01
        • 2013-10-16
        相关资源
        最近更新 更多