确保在Python中将尾部字符作为字符串包含

2024-04-20 15:16:10 发布

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

在Python中,确保尾字符作为字符串包含在Python中的最佳方法是什么?你知道吗

例如:脚本中用户提供的URL需要用于构造URL,因此我们希望确保URL中包含一个尾部斜杠,或者自己添加一个。你知道吗

那么,给定字符串http://www.so.comhttp://www.so.com/,什么是确保最终得到http://www.so.com/的最佳方法?你知道吗

我的解决方案使用re模块,但是由于我还在学习Python,我想知道是否有更好的实践来解决这个问题。你知道吗

>>> import re
>>> url = "http://www.so.com"
>>> re.sub('//$', '/', re.sub('$',  '/', url))
'http://www.so.com/'
>>> url = "http://www.so.com/"
>>> re.sub('//$', '/', re.sub('$',  '/', url))
'http://www.so.com/'

更新

我应该澄清一下,我正在寻找一个纯Python的解决方案,而不必使用任何额外的模块。只是学习Python技巧和最佳实践的一部分。你知道吗


Tags: 模块方法字符串用户re脚本comhttp
3条回答

对于这样的应用程序,您可能应该使用^{}(python2中的^{}),而无需手动管理slash。你知道吗

from urllib.parse import urljoin
url_base = "http://www.so.com"
add = "foo/bar"

print(urljoin(url_base, add))
# http://www.so.com/foo/bar

对于文件路径,^{}是一个类似的函数。你知道吗

您可以使用[-1]索引访问字符串的结尾:

>>> url = "http://www.so.com"
>>> if url[-1]!='/':
...  url+='/'
... 
>>> url
'http://www.so.com/'

对于难以阅读的一行,您可以这样做:

url = "http://www.so.com"
url += ['/', ''][(url or '')[-1] == '/']

(url or '')-如果url为false、null、空列表等,则默认情况下,此部分将url设置为字符串。。。你知道吗

[(url or '')[-1] == '/']-这部分是索引查找,如果url不是以字符串结尾,则其值应为0,如果是以字符串结尾,则其值应为1。你知道吗

['/', '']-根据前面提到的索引查找的值,我们将在url的末尾附加斜杠或空字符串

相关问题 更多 >