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))
くっきり動作します。
|
|