Python 2.7を使用して、指定された文字列からHTMLテーブルを生成するスクリプトを作成します。このスクリプトは、入力されたブランチとバージョン情報を解析し、各ブランチについての詳細情報をHTMLテーブル形式で出力します。
# 入力文字列
input_string = "ブランチ1/V00.01/a:100,b:100,c:100 ブランチ2/V00.02/a:200,b:200,c:200"
# 入力文字列を処理してデータを抽出
branches = input_string.split()
branch_info = {}
for branch in branches:
parts = branch.split('/', 2) # 最初の2つのスラッシュで分割
name = parts[0]
version = parts[1]
data = parts[2]
data_items = data.split(',')
data_dict = {}
for item in data_items:
key, value = item.split(':')
data_dict[key] = value
branch_info[name] = {'version': version, 'data': data_dict}
# HTMLテーブルの作成を開始
html_output = '<table border="1">\n'
html_output += ' <tr>\n <th colspan="2">ブランチ</th>\n'
for name in branch_info:
html_output += ' <td>{}</td>\n'.format(name)
html_output += ' </tr>\n <tr>\n <th colspan="2">バージョン</th>\n'
for info in branch_info.values():
html_output += ' <td>{}</td>\n'.format(info['version'])
html_output += ' </tr>\n'
# データ行の処理
data_keys = list(branch_info.values())[0]['data'].keys() # Python 2.7では直接リストになる
for key in data_keys:
html_output += ' <tr>\n'
if key == list(data_keys)[0]: # 最初のキーであればrowspanを設定
html_output += ' <th rowspan="{}">機種</th>\n'.format(len(data_keys))
html_output += ' <th>{}</th>\n'.format(key)
for info in branch_info.values():
html_output += ' <td>{}</td>\n'.format(info['data'][key])
html_output += ' </tr>\n'
html_output += '</table>'
print(html_output)
このスクリプトは、指定された形式の文字列を受け取り、解析してHTMLテーブル形式で出力します。スクリプトはPython 2.7の文法に基づいていますが、print
関数の使用や辞書のイテレーションなど、Python 3との互換性に注意する必要があります。Python 2.7では、辞書のvalues()
メソッドがリストを返すため、直接インデックスを使用してアクセスすることが可能ですが、Python 3ではこの部分をlist(branch_info.values())[0]['data'].keys()
のように変更する必要があります。