pythonのtkinterでメモ帳作り_完了したときにファイル名の冒頭に「完了_」を付けて、完了フォルダに移動する

習慣化2_6日目

どこかで記事をまとめたいが、少しずつ進めたことをメモしていく。

作成した関数

def kanryo():
    # はい/いいえを選択するメッセージボックスを表示する
    response = messagebox.askyesno("完了処理", "このノートを完了しますか?")
    # はい=True/いいえ=Falseなので
    if response:
        # ファイルを保存しておく未保存の場合もここで保存できる
        saveFile("self")
        # いま開いているファイルの情報を確認する
        global file
        # ファイルの開かれた方法によってfileの中身が異なるので揃える
        if type(file) != str :
            file = file.name
        # ファイルのパスを取得
        file_path=os.path.dirname(file)
        # 現在のファイル名を取得する
        file_title_now=os.path.basename(file)
        # ファイル名の冒頭に完了_を追加する
        file_title_new=re.sub('^','完了_',file_title_now)
        # もし完了フォルダがなかったら作成する すでにあったら何もしない
        os.makedirs(file_path+'/完了', exist_ok=True)
        # ファイルをリネームしつつ移動
        shutil.move(os.path.join(file_path, file_title_now), os.path.join(file_path+'/完了', file_title_new))
        # 閉じる
        quitApp("self")

参考にしたページ

はい/いいえ の確認とそれぞれの場合の処理

pg-chain.com

# はいいいえのメッセージボックスを表示するライプラリ
from tkinter import messagebox
(snip)
    # はい/いいえを選択するメッセージボックスを表示する
    response = messagebox.askyesno("完了処理", "このノートを完了しますか?")
    # はい=True/いいえ=Falseなので
    if response:
        # はいの場合の処理

冒頭に文字列を挿入する

dot-blog.jp

# 複数文字で区切ったりするため、正規表現を使用する
import re
(snip)

        # ファイル名の冒頭に完了_を追加する
        file_title_new=re.sub('^','完了_',file_title_now)

複数行を処理するときにループでまわすのではなく
flags=re.MULTILINE
を指定するだけでOK というのはどこかで使いたいかも。

ファイルを移動してリネームする

note.nkmk.me

# ファイル移動するときのライブラリ
import shutil
(snip)

        # もし完了フォルダがなかったら作成する すでにあったら何もしない
        os.makedirs(file_path+'/完了', exist_ok=True)
        # ファイルをリネームしつつ移動
        shutil.move(os.path.join(file_path, file_title_now), os.path.join(file_path+'/完了', file_title_new))

いつもありがとうございます!