我试图确定URL的基础,或者除了页面和参数之外的所有内容.我试过使用split,但是有没有比把它分成碎片更好的方法呢?有没有办法删除最后一个"/"中的所有内容?

鉴于此:

我想:

推荐答案

首先,你可以使用os.path.dirname:

>>> os.path.dirname('http://127.0.0.1/asdf/login.php')
'http://127.0.0.1/asdf'

它并不是专门针对URL的,但它恰好对它们起作用(即使在Windows上),它只是没有留下尾随斜杠(你可以自己加回去).

您可能还想查看urllib.parse.urlparse以获得更细粒度的解析;如果URL包含一个查询字符串或散列,您可能希望将其解析为多个部分,修剪解析返回的path组件,然后重新组合,这样就可以在不丢失查询和散列信息的情况下修剪路径.

最后,如果你想在最后一条斜线后分割出一个组件,你可以用1maxsplit做一个rsplit,并保留第一个组件:

>>> 'http://127.0.0.1/asdf/login.php'.rsplit('/', 1)[0]
'http://127.0.0.1/asdf'

Python-3.x相关问答推荐

Python defaultdict 在获取时返回 None,尽管使用默认值初始化

从 h264 帧解析数据包时 PyAV 不一致

聚合(aggregate)为最多包含两个元素的列表

排队多个子进程

当 None 被传递时,如何将默认值应用于 python 数据类字段?

Anaconda 和升级到新的 M1 Mac

Python 无法安装包

如何用 matplotlib 画一条线?

调试 Numpy VisibleDeprecationWarning(来自参差不齐的嵌套序列的 ndarray)

全局捕获快速 api 中的“异常”

如何将 Matplotlib 图形转换为 PIL Image 对象(不保存图像)

使用 pytest 的“间接fixture ”错误.怎么了?

Generic[T] 基类 - 如何从实例中获取 T 的类型?

如何在 Python 中键入提示通用数字类型?

如何用decorator 绕过python函数定义?

基本 Flask 应用程序未运行(TypeError:模块中缺少必填字段“type_ignores”)

*(单星)和/(斜线)作为独立参数有什么作用?

= (equal) 在表达式大括号内的 f 字符串中做什么?

__new__ 方法给出错误 object.__new__() 只接受一个参数(要实例化的类型)

python中存根文件(.pyi)的用途是什么?