前回の続きです。
Java-Swingアプリにて選択したレース結果のHTMLファイルを作成するPythonコードです。作成されたHTMLファイルは前回記事にあるMainクラスによりブラウザに表示されます。
このコードではCSVファイルの全内容がtableになるため、適宜加工が必要になります。tableを分割するなどして整形してから、cssファイルで徐々に見栄えを良くしていくつもりです。
import glob
import pandas as pd
paths = glob.glob('/*.csv')
paths2 = sorted(paths)
csvfile = paths2[-2]
df = pd.read_csv(csvfile,encoding='UTF-8')
race_count = len(df)
print("レース数 " + str(len(df)))
list_raceID = df['raceID'].tolist()
pathsB = glob.glob('/race/*.html')
pathsB2 = sorted(pathsB)
html_file = pathsB2[-1]
# 空ファイル名からレース番号を抽出(Javaとの連携箇所)
race_num = html_file.split(".")[0][-3:]
print(race_num)
raceID = list_raceID[int(race_num) -1]
print(raceID)
# racefileパスを作成する
year = raceID[1:5]
course = raceID[5:7]
kai = raceID[7:9]
racefile = "race" + raceID[1:] + ".csv"
racefile_path = f"/race/{year}/{course}/{kai}/{racefile}"
print(f"year {year}")
print(f"course {course}")
print(f"kai {kai}")
print(f"racefile {racefile}")
print(f"racefile_path {racefile_path}")
df2 = pd.read_csv(racefile_path,encoding="shift_JIS")
html_string = '''
<html>
<head><meta charset="UTF-8">
<title>TEST</title>
</head>
<body>
{table}
</body>
</html>.
'''
with open(html_file,'w') as f:
f.write(html_string.format(table=df2.to_html(index=False)))