0
0

SVNのXMLファイルを解析し、更新日付が120日以内のディレクトリ名を出力する

Last updated at Posted at 2024-02-22

Python 2.7でXMLファイルを解析し、更新日付が120日以内のディレクトリ名を出力するスクリプトを作成します。Python 2.7では、xml.etree.ElementTree モジュールを使用してXMLの解析を行うことができます。以下はそのためのスクリプト例です。

この例では、svnのxml出力ファイルが svn_info.xml という名前であると仮定しています。また、svnのxml形式が具体的にどのような構造を持っているか不明なため、一般的な形式に基づいてスクリプトを作成します。更新日付が含まれている要素や属性の名前を、あなたのファイルの実際の構造に合わせて適宜変更してください。

import xml.etree.ElementTree as ET
from datetime import datetime, timedelta

# SVNのXMLファイルを読み込む
tree = ET.parse('svn_info.xml')
root = tree.getroot()

# 現在の日付と120日前の日付を計算
now = datetime.now()
delta = timedelta(days=120)
cutoff_date = now - delta

# 更新日付が120日以内のディレクトリ名を出力
for entry in root.findall('.//entry'):
    # entry要素のkind属性がdirectoryであることを確認
    if entry.get('kind') == 'directory':
        # commit要素とその子要素dateを見つける
        date_element = entry.find('.//date')
        if date_element is not None:
            # 日付文字列をdatetimeオブジェクトに変換
            date_str = date_element.text
            # SVNのXMLから取得した日付の形式に合わせてください
            commit_date = datetime.strptime(date_str, '%Y-%m-%dT%H:%M:%S.%fZ')

            # 日付が120日以内であればディレクトリ名を出力
            if commit_date > cutoff_date:
                print(entry.get('name'))

このスクリプトは、次の手順に従います:

  1. xml.etree.ElementTreeを使用してXMLファイルを読み込む。
  2. 現在の日付から120日前の日付を計算する。
  3. XMLファイル内のすべてのentry要素を検索し、そのkind属性がdirectoryであるか確認する。
  4. 各ディレクトリのcommit日付が120日以内であるか確認する。
  5. 条件を満たすディレクトリ名を出力する。

このスクリプトを実行する前に、svn_info.xmlファイルが存在し、正しい形式であることを確認してください。また、日付の形式(%Y-%m-%dT%H:%M:%S.%fZ)があなたのXMLファイルの形式と一致するように、適宜変更してください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0