可以用吗九月而不是u中的“/”

2024-06-01 13:35:10 发布

您现在位置:Python中文网/ 问答频道 /正文

好像是的九月返回“/”作为分隔符,我想知道是否可以使用它来创建URL: 例如,获取一个类似https://some.domain.com/catalogs的url

   protocol + request.get_host() + os.sep + get_file_name() 
  • 这会引起什么问题吗?Or
  • urllib/2中有什么可以加入uri的吗?在

Tags: httpscomhosturlgetosrequestdomain
3条回答

在九月将返回\在Windows上-这是否是您想要的取决于您使用的协议,我认为,但广义地说,我认为使用九月对于不使用file://的url来说是不合适的(即使这样也有问题)。在

您可能会发现urlparse有用:https://docs.python.org/2/library/urlparse.html

os.sep为当前系统的文件系统路径提供分隔符。你的系统路径和URI路径不一样。在

RFC 3986给出:

A path consists of a sequence of path segments separated by a slash ("/") character.

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

语法不允许此/是路径段中的分隔符以外的任何内容,请检查RFC以确保双重安全。但这并不适用于整个URL,/在其他URL部分意味着不同的东西。在

urlsplit相反的是^{},一旦你组装了路径,它就可以做你想做的事情。在

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

根据文档:

The character used by the operating system to separate pathname components. This is '/' for POSIX and '\' for Windows. Note that knowing this is not sufficient to be able to parse or concatenate pathnames — use os.path.split() and os.path.join() — but it is occasionally useful. Also available via os.path.

因此,,注意使用是安全的。在

对于URI解析、拆分、连接等,您应该使用urllib.parse库。(在python2中称为urlparse

相关问题 更多 >