如何使用python文件拆分获取“”/file.txt“”



我正在尝试使用python连接url(绝对路径和相对路径(,但它没有像我预期的那样工作。

base_url = https://someurl/something/repo #values are coming from nfig.yml
filename = /home/tests/fixtures/python_app/dist/python_app-any.whl
url = urljoin(base_url, filename.split('/')[-1])
print("url:",url)

当前结果:

url: https://someurl/something/python_app-any.whl

预期成果:

url: https://someurl/something/repo/python_app-any.whl

我不想在base_url结束时使用slash

有人可以指导我在这里提供其他可能性吗?

如果你有

filepath = "/a/b/c/d"

你可以通过os.path.basename获得"d"

base_url = "https://someurl//something/repo"  # N.B. something is wrong with this...
filepath = "/home/tests/fixtures/python_app/dist/python_app-any.whl"
resulting_url = urllib.parse.urljoin(base_url, os.path.basename(filepath))

我为 urljoin 创建了用户定义的函数,如下所示:它工作正常。

    def urljoin(base_url, path):
       base_url = base_url if base_url.endswith('/') else base_url + '/'
       path = path[1:] if path.startswith('/') else path
       return base_url + path
    x=urljoin('https://hi/','hello') # (base_url, path)
    print(x)
    y=urljoin(x, 'test') # (base_url,filename)
    print(y)

结果:

    x = https://hi/hello
    y = https://hi/hello/test

谁能指导我为此代码编写单元测试?

最新更新