# 00001から11000までの千番台ごとのリストを入れ子にしたリストを作成する関数
def list_num():
return [[str(x).zfill(5) for x in range(1000*thou +1,1000*thou +1001)]\
for thou in range(0,11) ]
list_num_flat = [y for x in list_num() for y in x]
print(len(list_num_flat))
--------------------------------------------------
出力
--------------------------------------------------
11000
list_all = list()
for thousand in range(0,11,1):
list_thou = list()
for num in range(1,1001,1):
number = 1000*thousand + num
# 数字を5桁のゼロ埋め数字に変換する
number_5digits = str(number).zfill(5)
list_thou.append(number_5digits)
list_all.append(list_thou)
# リストを平滑化して入れ子をなくす
list_all_flat = [y for x in list_all for y in x]
print(len(list_all_flat))
--------------------------------------------------
出力
--------------------------------------------------
11000
# 競走馬個別ファイル内の競走馬名が幼名("XXXの2018"など)になっているファイルのパスリストを作成
import glob,os,re,sys
import pandas as pd
print("検索する年度を入力してください")
year = input()
path = f'/horse/{year}'
print(os.listdir(path))
# 数字が含まれているディレクトリ名をリスト化する
pattern = r'\d'
list_dir = [p for p in os.listdir(path) if re.compile(pattern).search(p)]
print(list_dir)
for dir in list_dir:
for path in glob.glob(f'/horse/{year}/{dir}/*.csv'):
df = pd.read_csv(path,header = None,encoding='shift_jis')
# B1セル相当の文字列に数字が含まれている場合、ファイルパスを追記出力する
if re.compile(pattern).search(df.iat[0,1]):
print(df.iat[0,1])
with open('未登録馬path.txt', 'a') as f:
print(path, file = f)
# list.append(path)は不可なのでこのような処理になった