繁体   English   中英

如何通过使用python文件分割来获取`/file.txt`?

[英]How to get ``` /file.txt ``` by using python file split?

我正在尝试使用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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM