ネットショッピングの自動配信メール(Gmail)を期間指定で検索して、使った合計金額を表示するPythonスクリプトを作ってみた

みなさんはネットショッピングしてますか? 私はいろんなものをほとんどネットで購入してます。最近は便利になりましたよね〜(^^) でも、便利だからと言ってバンバン購入してたら、去年1年でどのくらい使ったんだろうと気になってしまいました。(^^; そこで今回は、ネットショッピングで自動配信される購入確認メール(Gmail)を期間を指定して検索し、合計金額を表示するPythonスクリプトを作ってみたので紹介します。 単に件名(日本語OK)やFrom、日時での検索だけでも使えるし、検索結果をテキストファイルとして出力もできるので便利じゃないかなと思います。(^^) 尚、確認した環境は Windows10 Python 3.6 になります。 GmailをPythonで検索するには Eメールの汎用的なプロトコルのPOP3やIMAPを使う方法とGoogleが公開してるAPIを使う方法の3通りあるようです。 詳しくは以下のホームページを参考に。 ゼロからはじめるPython(22) PythonでGmailのメールを確認しよう | マイナビニュース このページによるとPOP3はセキュリティ的に推奨されないようで、私はAPIは登録が面倒くさそうだったので最初はIMAPで作ってました。 こちらのサイトを参考にして、これだと全検索か未読検索しか出来ないので検索方法も調べて(*)そこそこ出来たんですが、件名等に日本語が入ると全然ダメでした。(><) こちらのサイトを参考にエンコードを変えたり色々試しましたがダメだったのでIMAPは断念してAPIを使うことにしました。 (*)例えば、 件名:iPhone X From: news_japan@insideapple.apple.com 期間:2018/03/01〜2018/03/20 で検索したい場合はgmail.searchの内容を以下のようにすれば検索できます。 gmail.search(None,'(SUBJECT "iPhone X" FROM "news_japan@insideapple.apple.com" SENTSINCE "01-Mar-2018" SENTBEFORE "20-Mar-2018")')日本語が入るとダメですが、IMAPを試したい方はやってみて下さい。 準備 Google API導入 先程のマイナビニュースかこちらのサイト(PythonでGmailを使う(Google API)【動画付】 | SEO白書)を参考にしてGmail APIを登録して、client_secret.jsonをダウンロードして下さい。(マイナビニュースサイトの説明ではclient_id.jsonでしたが、client_secret.jsonで大丈夫です) また、Gmail APIを使うには、google-api-python-clientモジュールも必要なのでコマンドプロンプトから pip install google-api-python-clientを実行してPythonにインストールして下さい。 Pythonスクリプト 以下のブログが大変参考になりました。 pythonでgmailのメールを受信、slackに通知 - Qiita このブログで紹介されてるPython3版gmailapi.pyをベースにしました。 以下のリンクからスクリプトをダウンロードして下さい。 gmailapi.pyダウンロード Dropbox - gmailapi gmailSearch.pyダウンロード Dropbox - gmailSearch また、本スクリプトのバッチファイルを作ってショートカットをデスクトップ等に置いておくと便利です。 以下からダウンロードして下さい。 gmailSearch.batダウンロード Dropbox - gmailSearch.bat 以上3つのファイルを上でダウンロードしたclient_secret.jsonと同じフォルダに保存して下さい。 使ってみる ここでは、Amazonから自動配信されたメールを期間指定で検索して、合計金額を表示する例で説明します。 ▼例えば、このようなメールです。 件名は毎回このような感じなので、件名の検索ワードは「Amazon.co.jp ご注文の確認」にします。 ▼また、金額表示の直前部分は以下のようになってます。 なので、検索する金額の直前のワードは「クレジットカード(JCB): ¥ 」、金額直後は今回は特にないので「Enter」にします。 本スクリプトは、この直前直後のワードに挟まれた部分を金額として抽出します。 尚、金額数字の前後に空白がある場合は、空白まで含めた検索ワードにして下さい。 また今回は、去年(2017年)の合計金額を知りたいので開始日を2017/01/01、終了日を2017/12/31とします。 ▼バッチファイルをダブルクリックして、件名、開始日、終了日を入力 ▼初回起動時のみ認証画面が立ち上がるので、使うGmailアドレスを指定して許可します。 ▼表示されたコードをコピーして ▼コマンドプロンプトにペースト これで、これ以降は認証は不要です。 ▼続けて金額の直前、直後のワードを入力すると ▼しばらく待つと検索結果と合計金額が表示されます。 結果をファイルに出力したければ、yを入力(不要ならEnter)すれば ▼Pythonスクリプトと同フォルダに、日時ファイル名のテキストファイルが保存されます。 ▼その後、今回使った検索ワードを保存するか聞いてくるので、また使いたいならyを入力(不要ならEnter) ▼ Pythonスクリプトと同フォルダに、gmailSearch.iniというファイル名で保存されます。 ▼次回からは保存した検索ワードが番号付きで表示されるので、また検索したい時は番号を入力して下さい。 ▼違うワードで検索したい場合は、そのままワードを入力して下さい。最後のところでワード保存を選択すれば、次回からは新しいワードも番号付きになってます。 ▼事前に検索したいワードを保存したい場合は、gmailSearch.iniに追記すればOKです。(utf-8で保存して下さい。) [ ]で括った部分はキーワードなので削除しないで下さい。また、ワードがない場合は空行にせずに詰めて(上記fromのように)記述して下さい。 ▼ちなみに出力したファイルは、各検索結果の先頭に何番目の検索結果か(No.)と日付、件名、金額が表示されてます。 ▼最下行には検索した期間、期間内合計金額、期間内最高購入額、最高購入時のNo.と日付が表示されます。 最後に いかがでしょうか? 私は今回の結果を見て、鼻血が出そうになりました。(^^; 255,186円!!! 思ったよりかなり多かったので、ファイルで詳細を調べて反省しようと思います。(^^; また、今回は合計金額を表示する方法を紹介しましたが、金額直前直後のワードを指定しなければ(Enter)、単に件名やFrom、日付でGmailを検索できます。 皆さんもお試し下さい。(^^) happyChappy(@happyChappy1115)でした。 Sponsored Link Posted from するぷろ for iOS.

PC起動時にデスクトップを整理するPythonスクリプトを作ったので紹介します。

PCのデスクトップって 皆さんは整理してますか? ファイルを保存する時に、用途や種類に応じて保存先を変えるのが面倒で、ついデスクトップに保存したりしてませんか? 「後で一段落した時に移動すればいいや!」って思ってみたものの、いつの間にかデスクトップがファイルやフォルダで溢れ返って、整理するのが余計大変なことになってませんか? 私がそうです。(^^; 自宅のPCはまだマシな方ですが、会社のPCは人には見せられません。(><) こうなるとファイルを探すのに時間がかかるし、効率が悪いんですよね。(T_T) そこで、PCを起動したら自動的にデスクトップのファイルやフォルダを1つのフォルダに移動するPythonスクリプトを作ってみました。 その際に、そのフォルダには起動した日付フォルダを作成し、その中に画像や動画、テキストファイル等のフォルダを作って分類するようにしました。 なので、PCを立ち上げるだけでデスクトップもスッキリ 出来るし、日付フォルダに分けられるのでファイルやフォルダのバージョン管理も出来て、便利だと思います。(^^♪ 但し、ごみ箱や移動できないショートカット等もあるようなので、デスクトップの全てを移動できるわけではないので悪しからず。m(_ _)m 準備 スクリプトのダウンロード 以下のリンクからスクリプトをダウンロードして下さい。 Dropbox - DesktopOrganizer また、PC起動時に本スクリプトを実行するためのバッチファイルを以下のリンクからダウンロードして、DesktopOrganizer.pyと同じ場所に保存して下さい。 Dropbox - DesktopOrganizer.bat PCのスタートアップに保存 バッチファイルのショートカットを作成し、スタートアップフォルダに保存して下さい。 Windows10のスタートアップフォルダはわかりにくい場所にあります。以下を参考にして下さい。 C:\Users\ [ユーザー名]\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup ※[ユーザー名]はご自分のユーザー名です。 スクリプトのカスタマイズ スクリプトDesktopOrganizer.pyの最初の方にあるカスタマイズ:1及び2の部分がカスタマイズ可能です。 ▼カスタマイズ:1 dtPath:デスクトップのフルパス dtFolderName:1つにまとめてデスクトップに置くフォルダ名 xClude:デスクトップから移動させたくないフォルダ名やファイル名をカンマ区切りで指定。 delDays:この日数を過ぎた日付フォルダを削除 上記を参考に変更して下さい。 ▼カスタマイズ:2 デスクトップに散らばったファイルの種別に応じてフォルダ分け出来ます。 画像や動画等それぞれは以下のルールになってます。 〜FolderName:まとめたファイルを保存するフォルダ名 〜FolderList:まとめたい拡張子。カンマ区切り指定。 〜FolderFlg: 〜FolderNameのフォルダにまとめる場合='y'、まとめたくない場合='n' 使ってみる デフォルト設定は デスクトップに作成するまとめフォルダ名は「@Desktop」Cドライブショートカットは移動しないファイル種別のフォルダを作成し、まとめる になってます。 ▼こんなデスクトップの場合(Cドライブショートカット、フォルダショートカット、フォルダ、png、txt、py、xlsx、docx、zip、exeがあります。) ▼ PCを再起動すると、デスクトップにコマンドプロンプトが立ち上がるので、Enter(何でも良い)を入力 ▼デスクトップがスッキリしました。 ▼@Desktopを開くと、PCを起動した日付フォルダが作成されてて、その中にファイル種別フォルダを含めて全て保存されてます。 ▼ちなみに、作成された各フォルダにファイルが分類されてるのがわかります。 削除指定日数以上経過したフォルダがある場合 ▼指定日数以上経過したフォルダがある場合 ▼ PC起動時に削除するか聞いてくるので、「はい」か「いいえ」をクリックして ▼コマンドプロンプトでEnterを入力すると、古いフォルダが削除されてるのが確認できます。 最後に いかがでしょうか? これで散らかったデスクトップもスッキリです。(^^♪ ファイルを更新する時は、毎回デスクトップに保存するようにすれば、PC起動時に常に最新日付フォルダに保存されるのでバージョン管理もしやすくなると思います。 それに、しばらく使ってない古いファイルは不要だと思われるので、本スクリプトの自動削除機能で思い切って削除しちゃう勇気も必要だと思います。 ただ、削除するまでの日数をあまり長くしちゃうと、重複したファイルがたくさん出来てHDDを圧迫することにもなるので、削除指定日数は程々に。(^^; happyChappy(@happyChappy1115)でした。 Sponsored Link Posted from するぷろ for iOS.

難しい漢字の読み方や正確な書き方がわからない時に便利なアプリを紹介します!

皆さんは 本を読んだりネットを見たりしてる時に、「この漢字なんて読むんだろう?」とか、難しい字の場合は「どう書くんだろう?」って思ったことないですか? そういう時はどうしてますか? 今回はそんな時に便利なアプリと、調べ方を紹介します。 本を読んでてわからない字があったら 漢字読み方検索 - 手書き漢字読み方検索辞典 1.2.0分類: 教育,辞書/辞典/その他価格: 無料 (Flipout LLC) このアプリは読み方がわからなくても、見たまんま漢字を手書きすれば読み方がわかるアプリです。 例えば「鶉」って読み方を調べたい時 ▼手書きして、下に候補が出るのでタップすれば ▼読み方が出ます。「うずら」でした。 ▼たまに読み方が出ない時もありますが、WEB辞書をタップすれば、goo辞書で検索されます。 ネットを見ててわからない字があったら この場合はiOSの機能で調べられます。 例えば、ネットで「竈」って字が出てきたら ▼その字を選択して「調べる」をタップ ▼読み方が出ます。「かまど」でした。 でも読み方はわかっても、字が複雑過ぎてどんな字かよくわからないですよね? そんな時は字を拡大して表示するアプリが便利です。 当ブログでも以前漢字を拡大できるアプリを紹介しましたが、もうダウンロード出来なくなってるようなので新しいアプリを紹介します。 漢字拡大-楷書で明瞭 1.0.4分類: ユーティリティ,仕事効率化価格: 無料 (Takashi Hashimoto) 文字拡大 1.8.0分類: ビジネス,仕事効率化価格: 無料 (Mamoru Yano) 私がオススメなのは「漢字拡大」の方で、 楷書で綺麗に表示するので正確な書き方がわかります。 ただ、「文字拡大」の方は画数や筆順もわかるので、そういった情報も知りたければ文字拡大でもいいと思います。 「漢字拡大」の場合 ▼先程の竈を選択してコピー ▼漢字拡大を立ち上げてペーストすれば ▼ 楷書の綺麗な字で表示されるので正確な書き方がわかります。 「文字拡大」の場合 ▼このアプリはペーストできないので、「かまど」と入力して「竈」に変換して完了をタップすれば拡大表示されます。 いかにも活字なので、字によっては正確な書き方がわからないこともあると思います。でも... ▼左上の「順」をタップすれば筆順がわかるし ▼左下の「画」をタップすれば、画数がわかります。 どちらも無料なのでお好きな方で。(^^) 最後に いかがでしょうか? わからない漢字があっても、簡単に読み方が調べられるし、難しい字でも拡大して見れるので便利だと思います。 皆さんもお試し下さい。(^^) happyChappy(@happyChappy1115)でした。 Sponsored Link Posted from するぷろ for iOS.

ワコムのデジタルノート「Bamboo Spark with tablet sleeve」を買ってみた

手帳やノートって 何を使ってますか? 私は会社では色んな定例や単発の会議等をメモするのに1冊の手帳を使ってます。 定例などの予めわかってる会議はタブで十数ページ毎に区切って、会議の度にタブを開いて、日付を書いて前回の続きから書き込むという感じです。 でも、適当にタブで区切ってるので会議によってはページを使い切って足らなくなったりしてました。 じゃあルーズリーフにすればいいかなとも思いましたが、よくよく考えてみたら手帳だと過去に書いた内容を探そうと思っても探すのに一苦労だし(><)、数年前に書いたのを探したい時もあるけど、どの手帳かわからなくなる始末...ズボラなんです(T_T) また、たまに書いた内容を議事録としてメール等で配信することもあるので、その際は1度手書きした内容をキーボードで打ち直すという無駄な作業が発生するのが何だかなぁと思ってました。 ノートPCを持ち歩いてメモを取るという手もありますが、そうすると図を書き込むのが面倒くさい。(^^; そこで、デジタルノートであれば検索も簡単だろうし、OCR機能があれば打ち直す作業もなくなって効率的だと思って、どんなデジタルノートがあるか探してみました。 デジタルノートとは? 調べたら色んなタイプがあるようです。 •取ったメモをスマホなどで撮影するタイプ •電子パッドにメモ帳をセットするタイプ •デジタルペンで専用メモ帳に記録するタイプ など... この辺のことを調べるのに以下のホームページを参考にしました。 【the360.life】 手書きのメモが“コピペ”できる「デジタルノート」を徹底テスト! ASCII.jp - トップ すげー! 紙に書くだけデジタル化、最強ノート「CamiApp S」 - ASCII.jp ワコムのデジタルノート「Bamboo Slate」で手書きを簡単にデジタル化!【レビュー】 - MACHOLOG 選んだポイント 長く使いたいので、初期投資は多少掛かっても消耗品のコストがあまり掛からないもの検索できて、テキスト化出来るものあまり目立ちたくないので、A5サイズくらいでパッと見普通の手帳やノートに見えるもの という観点で探しました。 ワコム「Bamboo Spark with tablet sleeve」 結局ワコムのデジタルノート「Bamboo Spark with tablet sleeve」のA5サイズにしてみました。 Bambooは以下のような種類があって、それぞれA5とA4があるようです。 下敷きタイプ ▼Bamboo Slate ワコム Wacom Bamboo Slate S A5対応 ミディアムグレー スマートパッド 電子ノート ボールペンで紙にメモやスケッチを書いてデジタル化 スマホ タブレット対応 CDS610Sposted with カエレバ ワコム 2016-11-01 Amazon楽天市場価格.com ノートカバータイプ ▼Bamboo Spark with tablet sleeve ワコム Bamboo Spark with tablet sleeve CDS600PGposted with カエレバ Wacom Co., Ltd. =Item Recommendation for PC Store 2015-10-16 Amazon楽天市場価格.com ▼ ...

PCと接続したRaspberry Pi3にたまにしか電源を入れない時の時刻取得方法

RaspberryPi3の第3弾です。 今までRaspberryPi3(以下ラズパイ)に関して、ブログで2回紹介しました。 Raspberry Pi3をノートPCで使えるようにしてみた 〜準備編 Raspberry Pi3をノートPCで使えるようにしてみた 〜ノートPC接続編 これでラズパイをPCに直接接続して、色々できるようになりました。 でも、ラズパイにはバックアップ電池がないので、使う時しか電源を入れないような使い方をしてるとラズパイの時計が狂ってしまいます。 実験等でラズパイを使ってデータ収集して、その時の時刻をファイル名にしてCSVファイルを作成するようなことがあると思いますが、時刻がズレてるとどのファイルが新しいのかわからなくなってしまいます。(><) これでは困ってしまいますよね?(^^; そこで今回は、たまにしかラズパイに電源を入れない時でも、(そこそこ?(^^;)正確な時刻を取得する方法を紹介します。 やり方 ラズパイのPythonスクリプトを実行する時に、PCの時刻を渡すようにします。Python側はPCから時刻Aを受け取ったら、ラズパイの時刻Bを取得します。CSVファイルを生成する時など、時刻を取得したい時に時刻Cを取得します。A+C-Bを演算すれば取得したい時刻になります。 ここでは、Enterを入力すると「HelloWorld! 時刻」を表示するPythonスクリプトを作ったので、それで説明します。 準備 上記1はTeratermのマクロを使用します。 Teraterm ▼以下のようなマクロを用意します。 赤枠部分はラズパイのHelloWorldスクリプトがあるフォルダに変更して下さい。フォルダに空白が含まれる場合は"(ダブルクォーテーション)で囲って下さい。また、青枠部分はスクリプト名で、後に空白1文字を付けて下さい。 1行目は、PCの時刻を取得して年月日時分秒形式で変数NOW_DATEに代入しています。 2行目はラズパイのディレクトリをHelloWorldスクリプトがあるフォルダに変更してます。 3行目は1秒待ってます。(不要かも) 4行目は取得した時刻をHelloWorldスクリプトに渡してPythonを実行してます。 尚、本マクロは以下からダウンロード出来ます。 Dropbox - HelloWorld実行.ttl Pythonスクリプト Pythonスクリプト側は時刻を受け取れるようにします。 以下からHelloWorldスクリプトをダウンロードしてラズパイに保存して下さい。 Dropbox - HelloWorld ▼以下がスクリプト全文になります。 赤枠部分がPCから時刻を受け取って、ラズパイの時刻を取得する部分です。(やり方リストの2番) 青枠部分が時刻を取得する関数になってます。(やり方リストの3番、4番) 緑枠部分がmain文で、end以外の入力があったら「HelloWorld! 時刻」を表示します。 使ってみる ▼ 前回説明したようにしてPCとラズパイをクロスLANケーブルで接続して、Teratermでラズパイにログインします。 ▼コントロール→マクロからHelloWorld実行.ttlを選択 ▼HelloWorldスクリプトが実行されるので、お好きなタイミングでEnterを入力すればその時の「HelloWorld! 時刻」が表示されるし、endを入力すれば終了(End!表示)します。 最後に いかがでしょうか? お使いのPythonスクリプトに赤枠青枠部分を追記しておけば、いつでも最新時刻が取得できるようになるので、時刻をファイル名にすることも可能になります。 皆さんもお試し下さい。 ラズベリーパイ3 (Raspberry Pi 3B made in JAPAN) 技適対応 日本製 + 5.1V/2.5A ラズベリー財団公式アダプタ 【本体+アダプタ セット品】posted with カエレバ Raspberry Pi Amazon楽天市場 happyChappy(@happyChappy1115)でした。 Sponsored Link Posted from するぷろ for iOS.