レトロフリークは登録されているゲームの一覧をXML形式で出力することができます。
XML形式データでは少し扱いづらいのでCSV形式に変換するPythonスクリプトを作成してみました。
このプログラムは、標準入力からレトロフリークのXML形式(※1)のデータを読み取り、CSV形式で標準出力に出力します。
Unix系のOSの場合、次のようなコマンドで実行します。
cat game_database.xml | python gamedb2csv > game_database.csv
※1 レトロフリークに登録されているゲームのデータベースファイル作成は、https://www.cybergadget.co.jp/support/retrofreak/trouble/7107/8170.html の記事をご覧ください。
game_database.xmlはUTF-8エンコーディングで保存されており、このスクリプトもエンコーディングを変換せずそのまま出力します。
Excelなどで取り込みたい場合は、Excelのテキストファイルウィザードでインポート形式を指定したり、nkfコマンドなどであらかじめシフトJIS形式に変換しておく必要があります。
# # レトロフリークのgame_database.xmlをCSV形式に変換する # # This software is distributed under the license of NYSL. # http://www.kmonos.net/nysl/ # # 使い方: # 標準入力からXML形式のデータを読み取り、標準出力にCSV形式で書き # 出します # cat game_database.xml | python gamedb2csv > game_database.csv import sys from xml.etree import ElementTree def gamedb2csv(): tree = ElementTree.parse(sys.stdin) root = tree.getroot() games = root.findall('game') if len(games) == 0: sys.stderr.write('No game data.\n') exit(-1) field_names = '","'.join(games[0].keys()) sys.stdout.write(f'"{field_names}"\n') for game in games: fields = [] for key in game.attrib: fields.append(f'"{game.attrib[key]}"') sys.stdout.write(','.join(fields) + "\n") if __name__ == '__main__': gamedb2csv() exit(0)
Please give us your valuable comment