python - ファイルの更新日付を変更する - パラメータを .ini ファイルで指定する

 
1. 概要
2. .ini ファイルの構成
3. モジュール

1. 概要

 前項で基本的な動作はできるようになりました。  ですが、対象のディレクトリが複数あり。  複数回実行しなければならないのです。  これは非常に面倒である・・・。  ってことで .ini ファイルを読みこませて、1回ですべて実行するように変更していきたいと思います。

2. .ini ファイルの構成


[セクション名]		←	ここでは
dirname = ディレクトリの絶対パス
extname = 設定するファイルの拡張子をホワイトスペースで区切って列挙
setdate = 更新日付として設定する日付を指定

3. モジュール

 なんだか拍子抜けするくらい、あっさり変更できました。
# -*- coding: utf-8 -*-

import configparser
import os
import time
import sys

os.chdir(os.path.dirname(__file__))                     #    モジュールの位置にディレクトリを移動
config = configparser.ConfigParser()
config.read('update.ini')

def find_all_files(directory):                          #    元となるディレクトリより配下のファイルを収集する
    for root, dirs, files in os.walk(directory):
        yield root
        for file in files:
            yield os.path.join(root, file)

for section in config.sections():

    dirname = config.get(section, 'dirname')
    extname = config.get(section, 'extname')
    setdate = config.get(section, 'setdate')

    atime = mtime = time.mktime(time.strptime(setdate, '%Y%m%d'))

    for file in find_all_files(dirname):
        root, ext = os.path.splitext(file)
        if (ext == '.' + extname):
            os.utime(file, (atime, mtime))



 くっきり動作します。