如何在不包含文件名的情况下提取路径名



有如下所示的网址。

original = 'https://dev.s3.amazonaws.com/production/uploads/2017/11/filename.jpg'

我只想从中提取/production/uploads/2017/11
可以只提取文件名并提取包含文件名的路径,但请告诉我是否有一种好方法可以提取不包括文件名的路径。

original_image_name = original.split('/')[-1] # 'filename.jpg'
from urllib.parse import urlparse
original_image_url = urlparse(original)
original_image_path = original_image_url.path # '/production/uploads/2017/11/filename.jpg'

您可以使用:

import os
os.path.dirname(original_image_path)

一种快速的方法是使用正则表达式,如下所示:

(http[s]?://)?([^/s]+)(.*)

有关现场演示,请参阅以下内容:https://regex101.com/r/2jsyiI/2

urllib 有足够的工具来实现这一点:

https://docs.python.org/3.6/library/urllib.parse.html#module-urllib.parse

你会得到预期的输出

original = "https://dev.s3.amazonaws.com/production/uploads/2017/11/filename.jpg"
test = original.split("/")
test = test[3:]
test = test[:-1]
sd = '/'.join(test)
print sd

输出

production/uploads/2017/11

最新更新