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")
参考にしたページ
はい/いいえ の確認とそれぞれの場合の処理
# はいいいえのメッセージボックスを表示するライプラリ from tkinter import messagebox (snip) # はい/いいえを選択するメッセージボックスを表示する response = messagebox.askyesno("完了処理", "このノートを完了しますか?") # はい=True/いいえ=Falseなので if response: # はいの場合の処理
冒頭に文字列を挿入する
# 複数文字で区切ったりするため、正規表現を使用する import re (snip) # ファイル名の冒頭に完了_を追加する file_title_new=re.sub('^','完了_',file_title_now)
複数行を処理するときにループでまわすのではなく
flags=re.MULTILINE
を指定するだけでOK というのはどこかで使いたいかも。
ファイルを移動してリネームする
# ファイル移動するときのライブラリ 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))
いつもありがとうございます!