
No License
Python
コピー
# -*- coding:utf-8 -*-
import csv
import datetime
#datetimeの使い方
#print(datetime.date(2017,11,12))
# => 2017-11-12
#thinking
#データはクラスで保存する
#クラス変数は辞書によりアクセスする
#辞書のキーはプログラム側で決定する
#
#ファイルの名前=>"todo.csv"
#データを保持するクラス
class TodoInfo:
def __init__(self,todo,deadline):
#TodoInfoクラスを初期化する
#引数のselfはあまり考えなくて良い
#self移行が引数となる
#self.todoなどはクラス変数
self.todo = todo
#データ保持用の辞書
self.deadline = deadline
def example(self):
#擬似コード
pass
def toFormattedString(self):
#todoリストを表示するための書式設定
self.example()
#アプリケーションを動かすクラス
class TodoManager:
def __init__(self,fileName):
#TodoManagerクラスを初期化する
self.fileName = fileName
self.todo_data = {}
def example(self):
#擬似コード
print("-------------------------")
print("example")
print("-------------------------")
def setup(self):
#従業員Noを入力する
#リーダーは0番
self.example()
#csvファイルからデータを読み込む
#todo.csvを読み込みモードで開く
f = open(self.fileName,"r")
lines = f.readlines()
reader = csv.reader(lines)
#1行読み飛ばす
header = next(reader)
#lineは配列として読み込まれるので、インデックスでそれぞれ代入
for line in reader:
key = line[0]
todo = line[1]
deadline = line[2]
self.todo_data[key] = TodoInfo(todo,deadline)
#ファイルを閉じる
f.close()
def listProjectData(self):
#プロジェクトtodoを表示する
self.example()
def listIndiData(self):
#個人todoを表示する
self.example()
def addToIndivisual(self):
#個人todoリストへ追加する
#項目名、期日の入力を求める
self.example()
def addToProject(self):
#プロジェクトtodoへ追加する
#項目名、期日の入力を求める
self.example()
def deleteData(self):
#todoリストのデータを削除する
#どのように選択するかは未確定
self.example()
def saveToCsv(self):
#todoリストをcsvへ保存する
#todo.csvを書き込みモードで開く
f = open("todo.csv","w")
#keys()で辞書のキー一覧を取得
for key in self.todo_data.keys():
#csv書き込み用の配列
a = [key, self.todo_data[key].todo, self.todo_data[key].deadline]
print(a)
#lineterminator で改行する
writer = csv.writer(f,lineterminator = '\n')
#書き込む
writer.writerow(a)
f.close()
print("saving completed.")
def run(self):
#機能選択画面を表示する
while True:
print("1.個人のtodoリストに追加する")
print("2.プロジェクトのtodoリストに追加する")
print("9.終了")
print("番号を選んでください(1.2.9):",end="")
num = input()
if num == '1':
self.addToIndivisual()
elif num == '2':
self.addToProject()
elif num == '9':
break
#ここからアプリケーションを動かす本体
todo_manager = TodoManager("todo.csv")
todo_manager.setup()
todo_manager.run()
コンソール
現在、コメントはありません。
最初のコメンターになりませんか?
最初のコメンターになりませんか?