Python将url转换为目录

时间:2015-04-18 12:35:24

标签: python url directory

我正在尝试将类似"www.example.com/images/dog.png"的网址转换为当前目录中的目录。

所以我在"www.example.com"内找到一个名为"images"的文件夹,最后在文件中保存为"dog.png"

我已尝试使用urllib.url2pathname(path),但会不断将P:\添加到其开头。

1 个答案:

答案 0 :(得分: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"