如何从定义的根目录中获取文件的相对路径?

时间:2013-07-03 13:30:32

标签: python

我有以下内容,

base_dir = 'blog_images'
dir_to_serve = os.path.abspath(settings.MEDIA_ROOT + base_dir)

images = []
allowed_types = ('.jpg', '.jpeg', '.png', '.gif')
for  root, dirs, files in os.walk(dir_to_serve,topdown=False):
    for image_file in files:
        if image_file.endswith((allowed_types)):
            images.append(image_file)

我的目录结构如下;

media --> blog_images --> <year> --> <month> --> <date> --> files

使用os.walk()我可以获取每个目录的根目录等,但我想要完成的是在年/月/日之后建立一个字典键,然后列出该键下的图像。例如2013年然后是月份然后是一天,然后是每天的图像,以便我可以在模板中按日期访问它们。

你如何获得该循环中与blog_images相关的文件的相对路径? 如何构建用于模板的字典? 我应该关注哪些功能?

1 个答案:

答案 0 :(得分:4)

那将是os.path.relpath()

>>> import os
>>> filename = "C:/test/media/blog_images/2013/06/15/yay.gif"
>>> blog_images = "C:/test/media/blog_images/"
>>> os.path.relpath(filename, blog_images)
'2013\\06\\15\\yay.gif'