4

私は次のものを持っています、

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() を使用すると、各ディレクトリのルートなどを取得できますが、達成しようとしているのは、年/月/日から辞書キーを作成し、そのキーの下に画像を一覧表示することです。SO たとえば 2013 年には、テンプレートで日付ごとにアクセスできるように、月、日、そして毎日の画像があります。

blog_imagesに関連して、そのループ内のファイルの相対パスを取得するにはどうすればよいですか? テンプレートで使用する辞書を作成するにはどうすればよいですか? 私が見るべき機能のいくつかは何ですか?

4

1 に答える 1

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'
于 2013-07-03T13:34:13.733 に答える