Harigami
ログイン
anonymous タイトルなし
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("9.終了")
            print("番号を選んでください(1.2.9):",end="")
            num = input()
            if num == '1':
                self.listAllData()
            elif num == '9':
                break

#ここからアプリケーションを動かす本体
todo_manager = TodoManager("todo.csv")

todo_manager.setup()
todo_manager.run()
# -*- 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("9.終了")
            print("番号を選んでください(1.2.9):",end="")
            num = input()
            if num == '1':
                self.listAllData()
            elif num == '9':
                break

#ここからアプリケーションを動かす本体
todo_manager = TodoManager("todo.csv")

todo_manager.setup()
todo_manager.run()
コンソール
現在、コメントはありません。
最初のコメンターになりませんか?