# file1,file2の設定は省略
with open(file1, 'r', encoding='shift_jis') as f1:
with open(file2, 'w', encoding='shift_jis') as f2:
rows = []
reader = csv.reader(f1)
for row in reader:
for i,v in enumerate(row):
row[i] = v.replace('\n', '')
rows.append(row)
writer = csv.writer(f2)
for row in rows:
writer.writerow(row)
import glob,os,shutil
for year in range(1986,2021):
for f in glob.glob(f'/horse_racing/race_name/{year}/*'):
if os.path.isdir(f):
shutil.rmtree(f)
年フォルダ内のファイルを全て消去
import glob,os
for year in range(1986,2021):
for f in glob.glob(f'/Volumes/DATA_HR/horse_racing/race_name/{year}/*'):
if os.path.isfile(f):
os.remove(f)
import glob,csv
# 1986年から2020年のレースファイルからレース名他を抽出して競馬場毎にまとめる
for year in range(1986,2021):
for f in glob.glob(f'/horse_racing/race/{year}/*/*/*.csv', recursive=True):
file_new = f.split('race/')[0] + 'race_name/' + f.split('race/')[1][:-26] + f'race_n_{year}' + f.split('race/')[1][-26:-24] + '.csv'
with open (f, mode="r", encoding="shift_jis") as f1:
with open(file_new, mode="a", encoding="shift_jis") as f2: # 追記モード
writer = csv.writer(f2)
for i,row in enumerate(csv.reader(f1)):
if i != 0: # 行0の列インデックスは削除
if '010101' == f[-10:-4]: # 1回1日1Rだけ列タイトルを書き込み
if i == 1: # 列タイトル
rows = [e[2:] for e in row[21:30]] + ['raceID']
writer.writerow(rows)
if '年' in row[21]: # 列21に'年'がある行を書き込み
rows = row[21:30] + [f[-20:-4]]
writer.writerow(rows)
import glob
import pandas as pd
import csv
# 1986年から2021年のレースファイルから結果のみを抽出する。/年/競馬場コード/回/*.csv
for year in range(1986,2022):
for f in glob.glob(f'/horse_racing/race/{year}/*/*/*.csv', recursive=True):
file_new = f.split('race/')[0] + 'race_result/' + f.split('race/')[1]
with open (f, mode="r", encoding="shift_jis") as f1:
with open(file_new, mode="w", encoding="shift_jis") as f2:
writer = csv.writer(f2)
for i,row in enumerate(csv.reader(f1)):
# 行0の列インデックスは削除
if i != 0:
# 列0にラップ、ペースが含まれていればTrue
word = ['ラップ'in row[0],'ペース'in row[0]]
# どちらもFalseであれば列0から列20を書き込みする
if not any(word):
writer.writerow(row[0:21])
import glob,csv
# 1986年から1990年のレースファイルから空白行を削除したCSVファイルを作成する。/年/競馬場コード/回/*.csv
for year in range(1986,1991,1):
for f in glob.glob(f'/horse_racing/race_mas/{year}/*/*/*.csv', recursive=True):
file_new = f.split('race_mas/')[0] + 'race/' + f.split('race_mas/')[1]
with open (f, mode="r", encoding="shift_jis") as f1:
with open(file_new, mode="w", encoding="shift_jis") as f2:
writer = csv.writer(f2)
for row in csv.reader(f1):
if any(row):
writer.writerow(row)