Python的URL转换成目录

问题描述 投票:1回答:1

我试图将URL转换像"www.example.com/images/dog.png"进入目录从当前目录。

所以,我得到一个文件夹命名"www.example.com",那里面"images",最后里面的文件保存为"dog.png"

我已经使用urllib.url2pathname(path)尝试,但它一直追加P:\到它的开始。

python url directory
1个回答
2
投票

您可以使用os.makedirs()创建目录树,但如果最终目录已经存在,这将失败。所以,如果它试图创建的目录树,或使用try: ... except OSError:之前存在,你可以测试一下。在Python 3,你可以提供一个exist_ok参数为忽略此行为,请参阅os.makedirs的Python文档进行进一步的信息。

#!/usr/bin/env python

import os

cwd = os.getcwd()

url = "www.example.com/images/dog.png"

fullname = os.path.join(cwd, url)
path, basename = os.path.split(fullname)
if not os.path.exists(path):
    os.makedirs(path)

with open(fullname, 'w') as f:
    f.write('test\n')

如果你的系统不支持包含周期目录名,你可以把它们翻译成另一种性格,如_,就像这样:

fullname = fullname.replace('.', '_')

(就在fullname = os.path.join(cwd, url)行之后插入此)。

而作为jwilner提到的意见,这是更有效地使用

path = os.path.dirname

path, basename = os.path.split(fullname)如果你不需要的文件名的基本组件(在这个例子中"dog.png")。

© www.soinside.com 2019 - 2024. All rights reserved.