Python将url转换为目录

标签 python url directory

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

因此,我得到一个名为 "www.example.com" 的文件夹,位于该 "images" 内,最后在该文件夹内保存为 "dog. .png"

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

最佳答案

您可以使用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" )。

关于Python将url转换为目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29717424/

相关文章:

url - URL/Link 中的合法字符和非法字符是什么?

javascript - JQuery 在 Internet Explorer 11 下无法使用计算机名称

javascript - 如何获取js当前所在文件夹?

python - 在pygame中播放音乐的简单代码不起作用

java - Spring mvc 将 url "myapp.com/Foo/12345/test-one"重写为 "myapp.com/Foo/12345/test-one-a-b"

c# - 可执行位置不同

windows - 在 Windows 上删除一个非常非常深的子目录树?

python - 使用 PIL 在 Tkinter Canvas 小部件中嵌入图像

python - 显示所有字节的十六进制值,即使存在 ASCII 字符

python - del a[ :] and a = [] when I want to empty a list called a in python? 和有什么区别