アイデアノートをかき混ぜるPythonスクリプト
ideaNoteMixer
以下のようなアイデアノートがあるとする。
https://gyazo.com/ab01421f7a01c467b54373d08327a102
それに対して以下のような処理を行う
これらのうちから前から順番にランダムに十個選ぶ
選ばれたものはリストの末尾に移動する
インデントがついた項目は別ファイルに移動する
イメージとしては、カードボックスにカードが並んでいて、前から順番に適当に十個取り上げ、取り上げたものはカードボックスの最後尾に回す、という感じ。
また、項目にインデントがついているものは別のファイルに移動される。
逆に言えば、上のテキストファイルを触っているときに「削除」する操作をしなくてもいい。
インデントをつけておけば、次回このスクリプトを走らせたときに、自動的に別ファイルに移動される
消さないで消すの実践
ランダムに10個選ばれたものは、たとえばモーニングサマリーなどに利用する。
code:ideanotemixer.py
#ideanotemixer.py
import re
import random
import datetime
def moveToPrint(text):
printfilepath = "/Users/Tadanori/Dropbox/textbox/list/ideaPrint.md"
td = datetime.date.today()
tday = td.strftime("%Y%m%d")
with open(printfilepath,mode="a") as f:
f.write(text + "(" + tday + ")")
def mix():
filepath = "/Users/Tadanori/Dropbox/textbox/list/HotText.md"
with open(filepath) as f:
l = f.readlines()
count = 0
tempbody = []
mainbody = []
for item in l:
m = re.search(r"^(\* .*)",item)
if(m and random.random() < 0.3 and count < 10):
tempbody.append(m.group(1) + "\n")
count += 1
else:
#「もういい」アイデアのチェック
n = re.search(r" (\* .*)",item)
if(n):
#ファイル移動の処理を呼ぶ
moveToPrint("\n" + n.group(1))
continue
mainbody.append(item)
#最終行の改行を取り除く
tempbody-1 = tempbody-1.rstrip("\n")
with open(filepath,mode="w") as f:
f.writelines(mainbody + tempbody)
return tempbody
if __name__ == '__main__':
mix()