thumbnail.png

PythonをEXE化してWindowsPC用画像ダウンローダを作ってみた

thumbnail.png

年賀状のイラスト 今まで年賀状のイラストはネットで検索して、良さそうなのがあったらちまちま保存してました。でも、これって結構時間がかかるんですよね。(^^; そこで今年は画像ダウンローダを作って快適に画像を保存することにしました。数百個のイラストも一瞬でダウンロードできるので快適ですね。(^^♪ 今回やったことを備忘録として残したいと思います。大まかな流れは以下の手順になります。 手順 1. GoogleImagesDownloadでコマンドプロンプトからダウンロード出来るようにする 2. wxPython、wxGladeでGUI化して使いやすくする 3. py2exeでPythonがない環境の人でも使えるようにする ちなみに私の環境は以下の通りです。 - Windows10 - Python 3.8.12 - VSCode 1.63.2 1.GoogleImagesDownloadでダウンロード出来るようにする GoogleImagesDownloadインストール ``` pip install google-images-download ``` これでもインストール出来るようですが、上手くいかないことが多いようですので、以下のようにgithubから直接インストールします。 ``` pip install git+https://github.com/Joeclinton1/google-images-download.git ``` また、GoogleImagesDownloadだけでは100個までしかダウンロード出来ないので、ChromeDriverもインストールします。 ChromeDriverインストール こちらはPCにインストールされているChromeのバージョンにあったドライバーをインストールします。 Chromeのバージョン確認方法 Chromeの右上にある点3つ→設定→Chromeについてにある最初の数字(赤下線) 以下からChromeのバージョンにあったドライバーをインストールして下さい。 ChromeDriver - WebDriver for Chrome - Downloads ◆CUIでダウンロード ▼コマンドプロンプトで以下のように入力すれば ▼ダウンロード出来ます ちなみにここで入力したコマンドは ``` googleimagesdownload -k "鬼滅の刃 炭治郎" -l 200 -cd "./chromedriver.exe" ``` になります。ここでは - 検索キーワード=鬼滅の刃 炭治郎 - 最大ダウンロード数=200 - chromedriverのパス を設定してます。 引数に関しては以下のサイトを参考に。 [Python]Google images downloadを用いて簡単に画像取得 - Qiita 2.wxPython、wxGladeでGUI化 上述したようにコマンドプロンプトでダウンロードしてもいいですが、毎回引数を設定するのは面倒です。そこでGUI化してみました。 PythonでGUI化というと、Python標準のTkinter、PySimpleGUI、wxPython等が有名です。中でもボタン等のオブジェクトを見ながら配置できるwxGladeが使えるwxPythonがオススメです。今回はwxPythonとwxGladeでGUI化してみました。 wxPythonインストール コマンドプロンプトからpipでインストールします。 ``` pip install wxPython ``` ボタン等のオブジェクトの説明に関しては以下のサイトが参考になります。 wxPython | Python-izm wxPython公式サイト wxPython API Documentation — wxPython Phoenix 4.1.1 documentation wxGladeインストール wxGlade公式サイト wxGlade: a GUI builder for wxWidgets/wxPython 上記公式サイトからダウンロード出来ます。 wxGladeダウンロード方法を含め、使い方は以下のサイトが参考になります。 wxGladeをざっくり使う pythonコード出力まで ◆imagedownload.py作成 今回作ったwxGladeのファイルは以下になります。 Download ActionDropbox - wxglade_imagedownload3.wxg このファイルをPython形式で出力して、Classや関数を追加したimagedownload.pyは以下になります。 Download ...

約分したり最大公約数を算出するPythonスクリプトを作ってみた

最近 Youtubeで「10033/12877を約分する」というのを見ました。どうするんだろと思ったら「連分数」というのを使うらしいです。 連分数というのは、分母を整数+分数の形にしたもの分の1にして、というのをどんどん進めていった分数のことです。 詳しくは連分数 - Wikipediaをご覧下さい。 これだったらPythonで簡単に作れると思って、今回作ってみました。あまり需要はないと思います...(^^; Pythonスクリプト 今回Pythonスクリプト(.py)を作成・実行できるiPhoneアプリ「Pyto」とJupyterNotebook形式(.ipynb)を作成・実行できるiPhoneアプリ「Carnets」それぞれで作ってみました。 Pytoに関しては、ショートカットからパラメータを渡して実行できるので、ショートカットアプリも作ってみました。 Pyto - Python 3 15.0.3分類: 開発ツール,仕事効率化価格: 無料 (Develobile S.p.A.) Carnets - Jupyter 1.5.4分類: 開発ツール,教育価格: 無料 (Nicolas Holzschuch) スクリプトのダウンロード 以下のリンクからスクリプトをダウンロードして下さい。 Download ScriptPyto - 約分&最大公約数 Download Scriptショートカット - 約分&最大公約数ƒˆ Download ScriptCarnets - 約分&最大公約数 使ってみる Pyto単体の場合 ▼スクリプトの最初の方にあるchildに分子の数値、parentに分母の数値を入力して(デフォルトで分子=10033、分母=12877になってます)、右上の実行ボタンをタップ ▼下のコンソールに結果が表示されます。 10033/12877は最大公約数79で、127/163に約分できることがわかります。 10033=79×127、12877=79×163なのであってるようです。 ショートカットから実行する場合 上で説明した方法だと、毎回スクリプトを書き換えないとダメですが、ショートカットからだと分子、分母をパラメータとして渡すことで実行できるので便利です。 ここでは分子=6771、分母=7381の場合で説明します。 ▼ショートカットの「約分&最大公約数」のマークをタップ ▼分子に6771を入力して完了をタップ、分母に7381を入力して完了をタップ ▼Pytoが起動して、下のコンソールに結果が表示されます。 いちいちスクリプトを書き換えないで済むので便利です。(^^) Carnetsの場合 これはJupyterNotebook形式なので、外部からパラメータを渡すことは出来ないようです。 ▼最初のセルのchildとparentを書き換えて下さい。デフォルトは分子=10033、分母=12877です。 ▼それぞれのセルを実行すれば、3番目のセルに最大公約数、5番目のセルに約分結果が表示されます。 こちらも同じ結果が得られました。 最後に 今回PytoとCarnetsでスクリプトを作りましたが、それぞれ.py、.ipynbなのでデスクトップでも使えると思います。 あまり需要はないかもしれませんが、中高生のお子さんがいる方は使ってみては? 紹介したアプリ Pyto - Python 3 15.0.3分類: 開発ツール,仕事効率化価格: 無料 (Develobile S.p.A.) Carnets - Jupyter 1.5.4分類: 開発ツール,教育価格: 無料 (Nicolas Holzschuch) happyChappy(@happyChappy1115)でした。Sponsored Link

Pythonista3のスクリプトをウィジェットに配置する方法

iOS14 になってからホーム画面にウィジェットを配置できるようになりましたね。 ▼こういうやつです でも全てのアプリがウィジェットとして配置できるわけではないようですね。 今回紹介するPythonista3もウィジェットの追加アプリ一覧に出てきませんが、ショートカットアプリを使えば配置できるようになります。 ショートカット ▼ショートカットを起動して右上の+をタップして、アクションを追加をタップ ▼スクリプティングをタップして、下の方にあるPythonistaのスクリプトを実行をタップ ▼ウィジェットに配置したいスクリプト名をスクリプト名欄に入れます。 Pythonista3のフォルダに入れているスクリプトを指定する場合は上図のようにフォルダパスも必要です。引数がなければ空欄でOKです。 ▼右上の「・・・」をタップしてショートカット名を設定して完了をタップ これでショートカットを使って、Pythonista3スクリプトを起動できるようになりました。 あとはこのショートカットのウィジェットをホーム画面に配置します。 ウィジェットをホーム画面に配置 ▼ウィジェットを追加したいホーム画面の下の方の空いたスペースを長押しするとプルプルするので、左上の+をタップ ▼下の方のアプリ一覧からショートカットを選択して、ウィジェットを追加をタップ ▼ウィジェットが配置されたので、完了をタップ これでPythonista3スクリプトのウィジェットが配置出来ました。(^^) ちなみに 今回ホーム画面に配置したPythonista3スクリプトは、乗換案内で1度検索した駅名をリスト化し、次回からは発着駅や経由駅名を番号入力するだけで即検索できるスクリプトです。 以前ブログで紹介してるので、興味ある方はそちらもご覧下さい。 よく使う駅名をリスト化して、簡単にYahoo!乗換案内検索ができるpythonスクリプトを作ってみた! happyChappy(@happyChappy1115)でした。Sponsored Link Posted from するぷろ for iOS.

iPhoneでChromeで見ているページをホーム画面に追加する方法

iOS14 になってからデフォルトブラウザが変更可能になりましたね。 皆さんはもう変更しましたか? 私は今回試しにChromeに変更してみました。(^^) 結構便利かなと思ったんですけど、Safariの時にたまに使ってた「ホーム画面に追加」がChromeでは出来ないじゃないですか! 何か方法があるのかな? 皆さんはどうしてます? ということで今回ショートカットアプリを使って、Chromeで見ているページをホーム画面に追加できるようにしてみました。 当然そのアイコンをタップすればChromeで開きます。(^^) ショートカットダウンロード デフォルトではギャラリーのショートカットしかダウンロードできない設定になっているので、以下のようにしてダウンロード出来るように設定して下さい。 ▼設定からショートカットを開いて、信頼されていないショートカットを有効にする 以下の2つのショートカットをダウンロードして下さい。 Download Action 1ホーム追加リストƒˆ Download Action 2ホーム画面に保存ƒˆ ホーム画面に追加する流れ Chromeで見ているページから共有で「ホーム追加リスト」ショートカットを実行メモの「ホーム画面URL」ノートに見ているページのURLを保存し、「ホーム画面に保存」ショートカットが起動インデックスを1増やして、このショートカットを見ているページタイトルで別名保存このショートカットをホーム画面に追加 使ってみる ▼見ているページで共有をタップ ※ここではChromeを使ってますが、他のブラウザでも出来ます。 ▼上にスワイプしてホーム追加リストをタップ ▼初めて起動した時だけメモに保存するか聞いてくるので保存をタップ ▼「ホーム画面に保存」が起動するので、赤枠の数字を1増やして(ここでは0なので1にします)完了をタップ ▼「ホーム画面に保存」を長押しして複製をタップ ▼今複製したショートカットを開いて ▼見ていたページのタイトルが自動でコピーされてるので、ショートカット名を選択してペーストをタップ ▼見ていたページのタイトルがペーストされるので、好きな名前に修正して下さい。 ▼そのまま画面下のアクションをタップして、ホーム画面に追加をタップ ▼さらに追加をタップすれば、ホーム画面に追加されます。 ホーム画面に追加されたアイコンをタップすればChromeでページが開かれます。 ちなみに 本当なら「ホーム画面に保存」ショートカット内にタイトルとURLを保存したかったんですが上手くいかなかったので、メモアプリにファイル名「ホーム画面URL」として保存し、ホーム画面のアイコンをタップすると、ショートカット内のタイトル名で保存されたショートカットを呼び出し、そのショートカットで指定したn番目のURLをメモから取り込んでChromeを開くようにしてます。 なので、 ホーム画面URLメモやショートカット内のタイトル名で保存したショートカットを削除すると、ホーム画面のアイコンをタップしても何も起こらないので注意して下さい。(^^; 最後に 一応Chromeで開けるホーム画面追加は出来ましたが、Safariの方が簡単でいいですね。(^^; ま、どうしてもChromeを使いたいけど、ホーム画面に追加が出来なくて困ってた人はお試し下さい。 happyChappy(@happyChappy1115)でした。Sponsored Link Posted from するぷろ for iOS.

iPhoneでJupyter Notebookを使ってPythonしてみた!

厳密には Juno Connectというアプリなんですが、ほぼ Jupyter Notebookそのままに使えます。 Juno Connect 1.5.10分類: 開発ツール,教育価格: ¥1,220 (Rational Matter) iPhoneでPythonプログラミングと言えば、Pythonista3が有名だと思います。 Pythonista 3 3.3分類: 仕事効率化,教育価格: ¥1,220 (omz:software) 私も以前「[Pythonista3] Youtubeダウンロードライブラリ「Pytube」がまたエラーを出すようになったので「youtube-dl」に変更してみた!」や「よく使う駅名をリスト化して、簡単にYahoo!乗換案内検索ができるpythonスクリプトを作ってみた!」など多数のスクリプトを公開してます。 でもPythonista3は凄いアプリなんですが、データ解析等でよく使うpandas等が使えなかったりするんですよ。(T_T) 会社ではJupyter Notebookの開発環境でPythonのコーディングをしてるので、出来ればiPhoneでもJupyter Notebookが使えないかと思ってました。 そしたら、Juno Connectというアプリがあることを知ってダウンロードした訳です。 Juno ConnectとはiOS上で動作するJupyterクライアントアプリで、iPhoneにインストールしたJuno ConnectからリモートJupyterサーバーにアクセスしてデータ分析を行います。 Jupyterサーバーとして以下の4つが使えますが、これ以外にも独自のサーバーもOKなようです。 Juno社のリモートサーバー(Try Jupyter!)Azure NotebooksCOCALCbinder 私はMicrosoftのアカウントを持ってるのでAzure Notebooksにしてましたが、2020年9月に使えなくなるらしいので、COCALCに変更しました。 ちなみにリモートサーバーを使わずにローカルでJupyter Notebookが使えるJunoというアプリもあります。こちらの方が更に高いですが、お好きな方で。 Juno 1.2.8分類: 開発ツール,教育価格: ¥1,840 (Rational Matter) n次近似 前回、iPhoneのMatlabで行列を使ってn次近似する方法を紹介しました。 iPhoneのMatlabを使ってみた! 今回も同じように行列を使って近似式を求めてもいいんですが、折角Pythonなのでライブラリを使って近似してみます。 ・ExcelData.xlsx取得部 import numpy as np import pandas as pd df=pd.read_excel('ExcelData.xlsx',index_col=0) B=df.values Bnp=np.matrix(B) print(Bnp) ・n次近似指定部 print('n次近似(n>=1) n=?') N=int(input()) ・n次近似演算、グラフ化部 import numpy as np import matplotlib.pyplot as plt x=Bnp[:,0].T.tolist()[0] y=Bnp[:,1].T.tolist()[0] \#近似式の係数 res=np.polyfit(x,y,N) xMax=Bnp[:,0].max() RANGE=10 xMax=int(np.ceil(xMax/RANGE)*RANGE) \#近似式の計算 yy = np.poly1d(res)(x) \#グラフ化 plt.plot(x,yy) plt.plot(Bnp[:,0],Bnp[:,1],marker='*',linestyle='None') plt.xlim(0,xMax) \#グラフタイトルに近似式 title='' for i in reversed(range(N+1)): if i==N: ...