at backyard

Color my life with the chaos of trouble.

Python

Web上で気軽にPythonを試せるPlayground

自分用のメモ。 ひとまず python playgroundといった検索キーワードで調べて一番上に出てきたサイトが以下。 www.programming-hero.com どうやら調べていくと trinketというサービスを利用しているようなので、別に以下のサイトでも同じことを試せそうだ Tri…

HEIC形式の画像ファイルをPNGへ変換するPythonスクリプト

Pythonで大量のHEIC形式の画像ファイルをPNGへ変換する必要に迫られたので、過去に非同期の書き方をメモしておいた自身のブログを読み返していた。 shinshin86.hateblo.jp HEICファイルをPNGファイルに変換するためのPythonスクリプト 上のポストを参照しな…

scikit-learnのインストールに失敗する(M1 MacBook Air)

M1のMacBook Airで scikit-learn を試そうとしたが、下記のようなエラーが出て失敗してしまった。 pip subprocess to install build dependencies did not run successfully. ためしにcondaのほうで環境を作り、下記の conda install を使うことで無事にイン…

Pythonを用いてPCが充電中かどうかを確認する

だいたいTwitterでつぶやいしてしまったので、そちらを貼る。 PythonでPCが充電中かどうかをチェックしたいと思っていたが、psutilというライブラリを使えば簡単に調べられそうだった。試しにtkinterでサンプルアプリを書いてみた。 pic.twitter.com/8w091ml…

Pythonで画像を繋ぎ合わせてGIFを作るスクリプト

昨晩はPythonでopencv使って顔検出で遊んでました。 昔のコードを引っ張り出してコードをいじりながら遊んでいたのですが、いやはや、こういうのは面白くてついついやってしまいますね。 気づけば時間が溶けていて夜更かししてしまいました。 さて、顔検出で…

pip install bs4、じゃなくて、pip install beautifulsoup4

久しぶりに Beautiful Soup を使おうと思った。 Pythonのパッケージインストールでいつも困るのは、インストールする際に打つパッケージ名が、自分の記憶になる内容と異なることがある点だ。 例えば Beautiful Soup なら、インストール時のコマンド名は beau…

【凡ミス】Python logging formatでTypeError: expected string or bytes-like objectというエラーが出た

備忘録以下の割とどうでもいい駄文。 Pythonのloggingを使っていてformatを設定したら以下のようなエラーが出た。 formatter = logging.Formatter('%(asctime)s: %(message)s') logging.basicConfig(filename=log_file, format=formatter, level=logging.INF…

tkinterのdestroyとquitの違いを調べた

tkinterを使っているとき、ふとdestroyとquitの違いはなんぞや?と考えた。 両者は似たような動きをするが、どのように異なるのだろうか?と疑問に思って試しにインターネットで調べてみたら、ズバリな回答がstack overflowにあった。 stackoverflow.com 上…

cx_Freezeを用いてWindows用のexeを作成する

cx_Freezeを用いてWindows用のexeを作成した際の備忘録を書き残しておく。 実行したPython環境 Windows用のAnaconda経由でコマンドプロンプトを立ち上げて作業をしている。 Windows用のexeを作成する方法 下記のコマンドで作成可能。 python setup.py build …

tkinterとasyncioとthreadingを用いた投げっぱなしGUIプログラミング

asyncioとthreadingを用いた投げっぱなし処理について asyncioとthreadingを用いた投げっぱなし処理について下記で書いた。 shinshin86.hateblo.jp 今回こちらで書いた処理をtkinterで作成したGUIアプリ上で試してみたコードを下記に貼る。 やはり実際にデス…

Pythonのasyncioで投げっぱなしの処理(fire and forget)の実装サンプル

普段JavaScriptでコードを書いていると、投げっぱなしの処理を書くというのはとても簡単だ。 (ちなみに投げっぱなしの処理は英語では fire and forget というらしい) 今回JavaScriptで書けるようなノンブロッキングな処理について、Pythonのasyncioを用いて…

cx_FreezeでmacOS用の実行ファイルを作成する際のあれこれ

個人的な備忘録。 cx_Freezeを用いたPythonでmacOS用のデスクトップアプリを作る際に調べたあれこれを備忘録的に書き残していく。 なお、Macでcx_Freezeを利用する方法については下記にまとめている。 shinshin86.hateblo.jp 目次 目次 Mac用の実行ファイル…

tkinterでノートアプリを書いた

tkinterでシンプルなノートアプリ(メモ帳)を書いてみた tkinterで書いたノートアプリ 年末辺りから集中的にtkinterを使ってデスクトップアプリを作成していた。 tkinterについて触るのは初めてだったので色々と学びつつアプリ作成をしていたが、せっかく学ん…

Pythonでゼロ埋め(ゼロパディング)を実現するためのメモ

自分用備忘録。 Python でゼロ埋めで数値出力をする場合、いくつかの方法があるが、Python3.6 以降であればフォーマット文字列(f文字列などとも呼ばれたりしているみたい)を使ってサクッと書くことができる。 (このフォーマット文字列を利用しない場合は for…

Pythonのsubprocess.Popenでファイルを開こうとすると【[WinError 2] 指定されたファイルが見つかりません】

Windows環境でsubprocess.Popenでファイルを開こうとすると【[WinError 2] 指定されたファイルが見つかりません】というエラーがでる MacとWindowsどちらにも対応したアプリを書いていて、とある処理でPythonのsubprocess.Popenを使って指定したファイルを開…

Pythonのsqlite3を用いてDBからの取得結果をdictで返すサンプルコード

タイトルのようなことをしたかったのだが、検索してみると理解が間違えている(?)日本語の記事が普通に検索結果上位に出てきたので、自分の方でも改めて記載しておくことにした。 fetchoneを使って指定したデータをdict形式で取得する方法 サンプルコードを下…

Python3で最大の整数を取得する関数 - sys.maxsizeについて

Python3 では表示できる整数の上限というのはないらしい。 (逆に言うとPython2ではあったようで、そちらの値は sys.maxint という関数で値は取得できた。だが、Python3ではこちらの関数自体がなくなっている) 整数の上限はないようだが、最大値を示す整数を…

M1 Mac環境でのcx_Freezeの実行ファイル作成までのメモ

Pythonで配布可能な実行ファイルを作成する際に有効な手段としてcx_Freezeがある。 少し前に下記のポストでも書いたが、似た選択肢としてはpyinstallerがあるが、こちらはライセンスがGPLなので、例えば商用で利用するようなケースでは厳しくなってくる。 そ…

tkinterでLabelのテキストを変更する方法

tkinterのLabelのテキストを変更する方法に関する備忘録。 Labelのテキストを変更する方法は簡単で、tk.Label で生成したLabelインスタンスの text 属性を変更することで、テキストを変更することができる。 具体的には label["text"] = "変更後のテキスト" …

pyinstallerをmacで利用したときに"OSError: Python library not found: libpython3.10m.dylib, libpython3.10.dylib, Python3, .Python, Python" というエラーが出た場合の対応手順メモ

pyinstallerを利用したときのエラー対応に関する備忘録です。 目次 目次 環境 事象 対応方法 余談: pyinstallerのライセンスはGPLなので商用利用などには注意 pyinstallerがGPLで使えないなら、cx_Freezeという選択肢? 追記: ちょっと触ってみたが自身の環…

tkinterとsqlite3を使ってGUIアプリを作ってみる

tkinterとsqlite3(SQLite)を使ってみた際の備忘録です。 sqlite3でdatetimeを(擬似的に)扱う方法については下記を参考にしている。 qiita.com 色々と実装例を見ていると、フロントエンドとバックエンドで構成するほうが良さそうだが、今回はサンプルというこ…

tkinterのgirdを使ったウィジェットの配置について

あけましておめでとうございます。2022年もよろしくおねがいします。 昨晩は妻からプレゼントしてもらったニューマットレスを敷いて寝たのですが、マットレスが変わるとこうも寝心地が変わるものかと驚いています。 まるでホテルの良質なベッドで寝たかのよ…

tkinterでPython GUIプログラミング入門

PySimpleGUIは触っているが、その下のレイヤーで動くtkinter自体は触ったことがなかったので、このタイミングで入門してみようと思う。 一通りtkinterを使ってGUIアプリを作れるようになるところまでをこの記事内に書いていく。 長くなると思うので目次を要…

PySimpleGUIとtkinter、それぞれでHTMLのURLリンク(ハイパーリンク)をテキストフィールドに作る方法

目次 目次 PySimpleGUIでHTMLのURLリンク(ハイパーリンク)をテキストフィールドに作る方法 Pythonでブラウザを起動する方法 PySimpleGUIの画面上にハイパーリンクを実装したサンプル テキストに対してイベントを付与する tkinterでHTMLのURLリンク(ハイパー…

インストールされているChromeのversionに応じたchromedriverを勝手にインストールしてくれるwebdriver-managerが便利

SeleniumからChromeを扱う時、現在PCにインストールされているChromeのversionに応じたchromedriverを自身でインストールしておく必要がある。 ただ、Chromeのversionは定期的に新しくなるため、Chromeのversionが更新された際には対応するChromeのdriverを…

PySimpleGUIで簡単な計算機を作ってみた

PySimpleGUIを試すがてら、簡単な計算機を作ってみました。 PySimpleGUIで作った計算機 2つのフォームに計算したい数値を入れてラジオボタンで足し算、引き算、掛け算、割り算を選択し、Submit を押せば、その下の窓に計算結果が表示されます。 目次 目次 P…

Pythonを使って指定した列をリストで取得する方法(openpyxl利用)

openpyxlを使って縦一列の値をリストで取得する方法 PythonでExcelを扱う際にopenpyxlを使うケースは多いが、今回はそんなopenpyxlに関する備忘録をこちらに書き残す。 openpyxl - A Python library to read/write Excel 2010 xlsx/xlsm files — openpyxl 3.…

SeleniumでshadowRoot内の要素をJavaScript(execute_script)を利用しなくても取得できるようになった

はじめに このポストは元々 Pythonの Selenium でshadowRootを取得するときにdictで取得されてしまう件 (chromedriver-binaryに関する問題) というタイトルで書かれたものだったが、2021年11月のSeleniumのshadowRootに関する対応内容に合わせて、タイトルを…

PythonでlocalStorageのmockを作ってみた。Fizz BuzzとToDoアプリの間に作るもの。

PythonでlocalStorageのmockを作ってみた 作ってみたものはこちら github.com 作った理由は特になく、以前こちらの投稿で書いたlocalStorageのmockを作った際に、同じような実装をPythonで作れないものかと思い、作ってみたというだけになる。 shinshin86.ha…

mac上でダブルクリックでPySimpleGUIを用いたGUIアプリケーションを起動する方法

下記のポストに引き続き、PySimpleGUIに関するポスト。 shinshin86.hateblo.jp macでは .command という形式で .sh ファイルを作成することで、ダブルクリックでそのシェルスクリプトファイルを実行することができる。 この仕組を応用して、ファイルをダブル…