開発環境
- OS X Mavericks - Apple(OS)
- Emacs (CUI)、BBEdit - Bare Bones Software, Inc. (GUI) (Text Editor)
- Python (プログラミング言語)
Head First Python (Paul Barry(著)、 O'Reilly Media )のChapter 8(Mobile app Development: Small devices)、SHARPEN YOUR PENCIL(p.269)を解いてみる。
SHARPEN YOUR PENCIL(p.269)
コード(BBEdit)
athletemodel.py
#!/usr/bin/env python3
#-*- coding: utf-8 -*-
import pickle
import athletelist
def get_coach_data(filename):
try:
with open(filename) as f:
data = f.readline()
temp = data.strip().split(',')
return athletelist.AthleteList(temp.pop(0), temp.pop(0), temp)
except IOError as ioerr:
print('File error (get_coach_data): {0}'.format(ioerr))
return None
def put_to_store(files_list):
athletes = {}
for file in files_list:
athlete = get_coach_data(file)
athletes[athlete.name] = athlete
try:
with open('athletes.pickle', 'wb') as f:
pickle.dump(athletes, f)
except IOError as ioerr:
print('File error (put_and_store): {0}'.format(ioerr))
return athletes
def get_from_store():
athletes = {}
try:
with open('athletes.pickle', 'rb') as f:
athletes = pickle.load(f)
except IOError as ioerr:
print('File error (get_from_store): ' + str(ioerr))
return athletes
def get_names_from_store():
athletes = get_from_store()
return [athlete for athlete in athletes]
if __name__ == '__main__':
print(get_names_from_store())
入出力結果(Terminal)
$ ./athletemodel.py ['James Lee', 'Sarah Sweeney', 'Mikey McManus', 'Julie Jones'] $
0 コメント:
コメントを投稿