好像是 os.sep 返回 "/"作为分隔符,我想知道我是否可以使用它来制作 URL:
例如。获取类似 https://some.domain.com/catalogs 的 url

   protocol + request.get_host() + os.sep + get_file_name()
  • 这会导致任何问题吗? Or
  • urllib/2 中有什么可以加入 uris 的吗?
  • 最佳答案

    os.sep 为您提供当前系统文件系统路径的分隔符。您的系统路径和 URI 路径不同。

    RFC 3986 给出:



    如果您有一个像 http://foo.bar.baz/a/b/c/d 的 URI,您应该使用 urlsplit 将其拆分为组件并提取 path 部分。然后你可以安全地使用 .split('/') 来获取这个路径的各个部分,或者使用 '/'.join 从段中构造一个路径(如果你知道每个段根据语法都是有效的段)。

    语法不允许此 / 不是路径段中的分隔符,请检查 RFC 以确保双重确定。但这并不适用于整个 URL,/ 在其他 URL 部分将意味着不同的东西。
    urlsplit 的反面是 urlunsplit ,一旦你组装了路径,它就可以做你想做的事。

    为安全起见,您应该在使用 / 将单个路径部分与 urllib.quote('/test', '') 连接之前对其进行百分比编码(注意第二个参数 - / 默认情况下不会在此处转义。)

    关于python - 在 url 中使用 os.sep 而不是 "/"可以吗,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24907997/

    10-14 17:36
    查看更多