[Python] for, while で else句を使ってフラグ管理する
for, while で else Python で for, while 文を使用するときに else 句が使用できます。if 文で使用する else 句と違い意味で使用します。ほかの言語だとあまり見ない使い方で、最近まで知らなかったので、使い方をまとめます。 for文の else for 文で使用する else 句は for 文でのループ宙に break されなかった場合 に実行されるコードブ […]
Web備忘録 プログラミングを中心に技術的な事柄を忘れないように書き残します。
for, while で else Python で for, while 文を使用するときに else 句が使用できます。if 文で使用する else 句と違い意味で使用します。ほかの言語だとあまり見ない使い方で、最近まで知らなかったので、使い方をまとめます。 for文の else for 文で使用する else 句は for 文でのループ宙に break されなかった場合 に実行されるコードブ […]
pytest で datetime.now() をモック化したい pytest を使って datetime.now() で現在日時を取得しているコードをモック化してテストする方法をまとめます。 datetime.now() は実行時の現在日時を返すのでモック化しないとテストが難しい場合があります。ということでモック化したいですが datetime.now() は組み込み関数(属性)のため単純にモッ […]
pytest で非同期処理をテストしたい pytest で asyncio を使った非同期処理をテストしたい場合、単純に async キーワードを付与してテストメソッドを作ってもうまくいきません。 仮に async def test_asyncio(): みたいなテストを作ってテストを実行すると以下のように async def のテストメソッドはネイティブでサポートされていないためスキップされまし […]
pytest-skip でテストをスキップする Skipping | https://docs.pytest.org/en/reorganize-docs/new-docs/user/skipping.html テストコードが特定の環境でしか動かない場合(例えばWindows環境では動かない場合)や、Pythonのバージョンに依存したテストコードがある場合、実行に時間がかかるので普段のテストでは実 […]
pytest でモックを利用する pytest を利用してテストをコーディングする場合にモックを利用したい場合、pytest-mock というライブラリを使うと便利です。pytest-mock は mock パッケージの薄いラッパーを提供します。 この記事では pytest-mock を使ったいろいろなモックの使い方を紹介します。 pytest の基本的な使い方は以下の記事にまとめてます。 [Py […]
pytest とは pytest: helps you write better programs — pytest documentation pytest は Python のテストツールの1種です。Python には unittest とという標準ライブラリのテストツールがありますが、より Python らしくテストコードを書くことができるのが pytest の特徴です。 pytest は小 […]
Python でタイムアウト Python で実装した処理が一定時間以上経過しても終了しない場合、強制的に終了するような制御(タイムアウト)を実装する方法をまとめます。実装方法は幾つかありますが、非同期処理なのか同期処理なのかで実装方法や挙動が変わってくるので注意が必要です。 非同期処理をタイムアウト制御する方法 高水準の API インデックス — Python 3.9.1 ドキュメント タイムア […]
Pythonだと nohup コマンドの出力が終了時にしか出力されない Python で次のようなコードがあるとします。30秒間カウントし続け、それを出力します。 import time for i in range(0, 30): print(i) time.sleep(1) これをバックエンドで実行するために以下のようなコマンドで実行します。 $ nohup python x.py & […]
ArgumentParser でコマンドライン引数を解析する argparse — コマンドラインオプション、引数、サブコマンドのパーサー — Python 3.9.1 ドキュメント Python でコマンドライン引数を使ったプログラムを作成する場合、標準ライブラリとして提供される argparse モジュール を使用すると便利です。 例えば cat コマンドでファイル内容を出力すると […]
pandas のデータフレームで CSVとExcel読み書きする方法 Python ライブラリ pandas のデータフレームを使って、CSV と Excel ファイルへの読み書きを実装してみます。Excelにデータを書き込んだり、CSVからデータをデータフレームに読み込んで見たりします。 CSV入出力 read_csv() でCSVファイルをデータフレームに読み込む pandas.read_cs […]