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'))
このスクリプトは、次の手順に従います:
-
xml.etree.ElementTree
を使用してXMLファイルを読み込む。 - 現在の日付から120日前の日付を計算する。
- XMLファイル内のすべての
entry
要素を検索し、そのkind
属性がdirectory
であるか確認する。 - 各ディレクトリの
commit
日付が120日以内であるか確認する。 - 条件を満たすディレクトリ名を出力する。
このスクリプトを実行する前に、svn_info.xml
ファイルが存在し、正しい形式であることを確認してください。また、日付の形式(%Y-%m-%dT%H:%M:%S.%fZ
)があなたのXMLファイルの形式と一致するように、適宜変更してください。