Python メモ
Page content
Python でスクリプトを書いていたときのメモ。
markdown frontmatter
pip install python-frontmatter
import frontmatter
post = frontmatter.load(file)
print(post['title'])
print(post.content)
assertion - unit test
unittest — Unit testing framework — Python 3.10.1 documentation
- assertEqual(a, b)
- assertNotEqual(a, b)
- assertTrue(x)
- assertFalse(x)
- assertIs(a, b)
- assertIsNot(a, b)
- assertIsNone(x)
- assertIsNotNone(x)
- assertIn(a, b)
- assertNotIn(a, b)
- assertIsInstance(a, b)
- assertNotIsInstance(a, b)
unit test ベース
from unittest import TestCase
class TestFoo(TestCase):
def setUp(self) -> None:
print("setup")
def tearDown(self) -> None:
print("tearDown")
def test_function(self):
self.fail()
PyCharm でテストケースを作成する
いつものコマンド。 Ctrl + Shift + T
JSON パース
ref json — JSON エンコーダおよびデコーダ — Python 3.10.0b2 ドキュメント
import json
json_text = '{"x": 1, "y": 2, "z": 3}'
v = json.loads(json_text)
v['x'] # 1
ファイル読み込み
with open(file, mode='r', encoding='utf-8') as content_file:
content = content_file.read()
例外
ref. 組み込み例外 — Python 3.10.0b2 ドキュメント
dict に指定したキーが存在するかを確認する
ref python - Check if a given key already exists in a dictionary - Stack Overflow
d = {"key1": 10, "key2": 23}
if "key1" in d:
print("this will execute")
if "nonexistent key" in d:
print("this will not")
存在しないことを確認するなら
if "keyX" not in d:
print("this will not")
型ヒントで自クラスを指示する
ref python - putting current class as return type annotation - Stack Overflow
AND 条件
cond_a and cond_b
dict をフィルターする
foodict = {k: v for k, v in mydict.items() if k.startswith('foo')}
ref. python - Filter dict to contain only certain keys? - Stack Overflow
引数のデフォルト値を設定する
def do(n_from=0, n_to=0):