Closed Yuma-Tsukakoshi closed 1 year ago
aiter()は、非同期イテレータを返す関数です。引数には、非同期イテレータプロトコルをサポートするオブジェクトを渡します。
anext()は、非同期イテレータから次の要素を取得する関数です。引数には、非同期イテレータと、デフォルト値を渡します。非同期イテレータが要素を返さない場合、デフォルト値が返されます。デフォルト値が指定されていない場合、StopAsyncIteration例外が発生します。
bytes()は、バイト列を返す関数です。引数には、整数、イテレータ、文字列などを渡します。整数を渡した場合、その長さのゼロで埋められたバイト列が返されます。イテレータを渡した場合、その要素をバイトとして解釈したバイト列が返されます。文字列を渡した場合、エンコーディングとエラー処理の方法を指定する必要があります。
breakpoint()は、デバッガに制御を移す関数です。引数には、任意のオブジェクトを渡すことができます。この関数は、PYTHONBREAKPOINT環境変数に設定されたデバッガを呼び出します。デフォルトでは、pdb.set_trace()が呼び出されます。
callable()は、オブジェクトが呼び出し可能かどうかを判定する関数です。引数には、任意のオブジェクトを渡します。オブジェクトが呼び出し可能な場合はTrueを、そうでない場合はFalseを返します。
classmethod()は、クラスメソッドに変換するデコレータです。引数には、関数を渡します。クラスメソッドとは、最初の引数にクラス自身を受け取るメソッドのことで、インスタンスからでもクラスからでも呼び出すことができます。
compile()は、ソースコードをコードオブジェクトに変換する関数です。引数には、ソースコードとモードとファイル名などを渡します。モードには、‘exec’(文の実行)、‘eval’(式の評価)、‘single’(対話的な実行)のいずれかを指定します。コードオブジェクトとは、Pythonの内部表現であり、exec()やeval()で実行することができます。
delattr()は、オブジェクトから属性を削除する関数です。引数には、オブジェクトと属性名(文字列)を渡します。属性が存在しない場合や削除できない場合はAttributeError例外が発生します。
filter()は、イテラブルから条件に合う要素だけを取り出す関数です。引数には、関数とイテラブルを渡します。関数にはNoneも指定できます。関数がNoneの場合は真偽値で判定されます。filter()はイテレータを返します。
<比較>
<数値型>
※bit処理は使う時になったら⇒使う頻度少なめ?
※ハッシュ化をすることもできる ⇒詳しくは暗号関連のサービスでやる
<ジェネレータ型> iter() で型変換して、next({変数})とかするだけでyeild文作成できる
<mutableなシーケンス型> s.copy() == s[ : ] s.extend(t) == s += t s.insert( i , x ) => index番号がiのところにxを挿入する s.remove(x) 等価となる最初の要素を取り除く s.reverse() => 逆転させる
list.sort( ) メソッド => 要素ごとかえる = イミュータブルのオブジェクトには使えない sorted(list) 関数 => 元のリストは保持
真理値判定: どのようなオブジェクトでも真理値として判定できます。オブジェクトはデフォルトでは真と判定されますが、特定の条件を満たす場合は偽と判定されます。ブール演算には and 、 or 、 not があります。
比較: Pythonには8種類の比較演算があります。比較演算は任意に連鎖できます。 is および is not 演算子は同一性を判定します。 in と not in 演算子はイテラブルやマッピングに対してメンバーシップを判定します。
数値型: 数値型には3種類あります: 整数 (int) 、 浮動小数点数 (float) 、 複素数 (complex) です。ブール型 (bool) は整数のサブタイプです。数値型は数値リテラルやコンストラクタ関数で生成できます。Pythonは型混合の算術演算に対応しています。
シーケンス型: シーケンス型とは順序付けられた要素の集まりを表す型です。シーケンス型には文字列 (str) 、 リスト (list) 、 タプル (tuple) 、 バイト列 (bytes) 、 バイト配列 (bytearray) 、 range 型 (range) などがあります。シーケンス型はシーケンスリテラルやコンストラクタ関数で生成できます。シーケンス型はインデックスやスライスで要素にアクセスできます。また、組み込み関数 len() や reversed() なども使えます。
マッピング型: マッピング型とはキーと値のペアの集まりを表す型です。マッピング型には辞書 (dict) があります。マッピング型はマッピングリテラルやコンストラクタ関数で生成できます。マッピング型はキーを使って要素にアクセスできます。また、組み込み関数 len() や sorted() なども使えます。
集合型: 集合型とは重複しない要素の集まりを表す型です。集合型には集合 (set) と凍結集合 (frozenset) があります。集合型は集合リテラルやコンストラクタ関数で生成できます。集合型はメンバーシップや包含関係を判定できます。また、組み込み関数 len() や sum() なども使えます。
クラスとインスタンス: クラスとインスタンスとはオブジェクト指向プログラミングの基本的な概念です。クラスとはオブジェクトの設計図のようなもので、属性やメソッドを定義できます。インスタンスとはクラスから生成されたオブジェクトのことで、クラスの属性やメソッドを継承します。クラスは class 文で定義できます。インスタンスはクラス名に引数を渡して生成できます。
例外: 例外とはプログラムの実行中に発生するエラーや異常な状態を表すオブジェクトです。例外は組み込みのものやユーザ定義のものがあります。例外は raise 文で発生させることができます。例外は try 、 except 、 else 、 finally 文で処理することができます。
NotImplementedとは何なのか? https://qiita.com/simonritchie/items/2245bc331045a495cc0c
numpyでもできると思ったけど、数値的な計算はmath.のモジュール使ってもできる!
randomは、擬似乱数やランダムな選択や順序などを生成するモジュールです。randomでできることは、以下のようなものです。
擬似乱数の生成:整数や小数や分数などの擬似乱数を生成する。例えば、randintやuniformやrandomなどの関数を使う。 シーケンスのランダムな選択:シーケンスからランダムに要素を選択したり、サンプルを取ったりする。例えば、choiceやsampleやchoicesなどの関数を使う。 シーケンスのランダムな順序:シーケンスの要素の順序をランダムに変更したり、並べ替えたりする。例えば、shuffleやsortedなどの関数を使う。
ecimalは、10進数の浮動小数点数を扱うためのモジュールです。decimalでできることは、以下のようなものです。
10進数の浮動小数点数の生成:文字列や整数やタプルなどから10進数の浮動小数点数を生成する。例えば、DecimalやContextなどのクラスを使う。 10進数の浮動小数点数の演算:10進数の浮動小数点数同士や他の数値型との四則演算や比較演算などを行う。例えば、+や-や*や/や==や<などの演算子を使う。 10進数の浮動小数点数の設定:10進数の浮動小数点数の精度や丸め方などを設定する。例えば、getcontextやsetcontextやroundingなどの関数や属性を使う。
statisticsは、統計的な計算や分析を行うためのモジュールです。statisticsでできることは、以下のようなものです。
平均値の計算:データの平均値を計算する。例えば、meanやmedianやmodeなどの関数を使う。 分散や標準偏差の計算:データの分散や標準偏差を計算する。例えば、varianceやstdevやpstdevなどの関数を使う。 相関係数の計算:データの相関係数を計算する。例えば、pearsonrやspearmanrなどの関数を使う。
operatorは、Pythonの組み込み演算子を関数として提供するモジュールです。operatorでできることは、以下のようなものです。
算術演算の実行:加算や減算や乗算や除算などの算術演算を実行する。例えば、addやsubやmulやtruedivなどの関数を使う。 比較演算の実行:等価や大小や包含などの比較演算を実行する。例えば、eqやltやgtやcontainsなどの関数を使う。 論理演算の実行:andやorやnotなどの論理演算を実行する。例えば、and_やor_やnot_などの関数を使う。
functoolsは、高階関数や関数の操作や修飾などを行うためのモジュールです。functoolsでできることは、以下のようなものです。
高階関数の使用:他の関数を引数や戻り値として扱う関数を使用する。例えば、reduceやpartialやcmp_to_keyなどの関数を使う。 関数のキャッシュ:関数の呼び出し結果をキャッシュして、再計算を省く。例えば、lru_cacheやcached_propertyなどのデコレータを使う。 関数の修飾:関数に追加の機能や属性を付与する。例えば、wrapsやsingledispatchやtotal_orderingなどのデコレータを使う。
itertoolsは、イテレータを作成したり操作したりするためのモジュールです。イテレータとは、要素を一つずつ返すオブジェクトです。itertoolsでできることは、以下のようなものです。
無限イテレータの作成:無限に要素を返すイテレータを作成する。例えば、countやcycleやrepeatなどの関数を使う。 有限イテレータの作成:有限に要素を返すイテレータを作成する。例えば、accumulateやchainやcombinationsなどの関数を使う。 イテレータの操作:イテレータから要素を取得したり、条件を適用したりする。例えば、isliceやtakewhileやfilterfalseなどの関数を使う。
このサイトからよく使われる文法をまとめると、以下のようになります。
shutil.copy(src, dst, *, follow_symlinks=True)
または shutil.copytree(src, dst, symlinks=False, ignore=None, copy_function=copy2, ignore_dangling_symlinks=False)
shutil.move(src, dst, copy_function=copy2)
shutil.rmtree(path, ignore_errors=False, onerror=None)
または shutil.unlink(path, *, dir_fd=None)
shutil.make_archive(base_name, format[, root_dir[, base_dir[, verbose[, dry_run[, owner[, group[, logger]]]]]]])
shutil.unpack_archive(filename[, extract_dir[, format]])
これらの文法は、コードブロックで表示します。
import shutil
# ファイルのコピー
shutil.copy("test.txt", "test_copy.txt")
# ディレクトリのコピー
shutil.copytree("dir1", "dir2")
# ファイルの移動
shutil.move("test.txt", "dir1")
# ディレクトリの移動
shutil.move("dir1", "dir3")
# ファイルの削除
shutil.unlink("test_copy.txt")
# ディレクトリの削除
shutil.rmtree("dir2")
# アーカイブファイルの作成
shutil.make_archive("archive", "zip", "dir3")
# アーカイブファイルの展開
shutil.unpack_archive("archive.zip", "dir4")
このサイトは、Pythonの標準ライブラリの一部であるlinecacheモジュールについて説明しています。linecacheモジュールは、ファイルの特定の行を高速に読み込むためのもので、トレースバックやソースコードブラウザなどで使用されます。このサイトでは、linecacheモジュールの主な関数について、使用例や注意点とともに紹介しています。
このサイトからよく使われる文法をまとめると、以下のようになります。
linecache.getline(filename, lineno, module_globals=None)
linecache.getlines(filename, module_globals=None)
linecache.clearcache()
linecache.checkcache(filename=None)
これらの文法は、コードブロックで表示します。
import linecache
# ファイルの特定の行を取得
line = linecache.getline("test.txt", 3)
print(line)
# ファイルの全ての行を取得
lines = linecache.getlines("test.txt")
print(lines)
# キャッシュされたファイルをクリア
linecache.clearcache()
# キャッシュされたファイルを更新
linecache.checkcache("test.txt")
fnmatchモジュールは、Unixシェルのようなファイル名のパターンマッチングを提供するもので、globモジュールやshutilモジュールと併用できます。
tempfileモジュールは、一時的なファイルやディレクトリを安全に作成するためのもので、osモジュールやshutilモジュールと併用できます。 tempfileモジュールは、以下の4つのカテゴリに分けられる関数やクラスを提供します。 一時的なファイルオブジェクトを作成するもの: tempfile.TemporaryFile, tempfile.NamedTemporaryFile, tempfile.SpooledTemporaryFile, tempfile.TemporaryDirectory 一時的なファイル名を作成するもの: tempfile.mkstemp, tempfile.mkdtemp, tempfile.mktemp 一時的なファイルやディレクトリを管理するもの: tempfile.TemporaryFileCleanupManager, tempfile.gettempdir, tempfile.gettempprefix 一時的なファイルやディレクトリの設定を変更するもの: tempfile.tempdir, tempfile.template tempfileモジュールは、プラットフォームに応じて最適な方法で一時的なファイルやディレクトリを作成しますが、必要に応じてカスタマイズすることもできます。例えば、prefix, suffix, dirなどの引数を指定したり、mode, buffering, encodingなどのオプションを指定したりできます。 tempfileモジュールは、一時的なファイルやディレクトリを自動的に削除することができますが、明示的に削除することもできます。例えば、closeメソッドやwith文を使ったり、delete引数を指定したりできます。
filecmpモジュールは、ファイルやディレクトリの比較を行うためのもので、shutilモジュールやdifflibモジュールと併用できます。このサイトでは、filecmpモジュールの主な関数やクラスについて、使用例や注意点とともに紹介しています。
filecmpモジュールは、以下の2つのカテゴリに分けられる関数やクラスを提供します。 ファイルの比較を行うもの: filecmp.cmp(f1, f2, shallow=True), filecmp.cmpfiles(dir1, dir2, common, shallow=True) ディレクトリの比較を行うもの: filecmp.dircmp(a, b, ignore=None, hide=None) filecmpモジュールは、ファイルやディレクトリの比較において、浅い比較と深い比較の2種類の方法をサポートしています。浅い比較は、ファイルやディレクトリのメタデータ(サイズや更新日時など)を比較するもので、高速ですが正確ではありません。深い比較は、ファイルやディレクトリの内容(バイト列やサブディレクトリなど)を比較するもので、正確ですが低速です。shallow引数を指定することで、浅い比較か深い比較かを選択できます。 filecmpモジュールは、ファイルやディレクトリの比較結果を返すだけでなく、それらを表示するためのメソッドや属性も提供しています。例えば、report, report_full_closure, report_partial_closureなどのメソッドやleft_only, right_only, common_files, diff_filesなどの属性があります。これらを使うことで、ファイルやディレクトリの違いや共通点を簡単に確認できます。
statモジュールは、ファイルやディレクトリの状態を取得するためのもので、osモジュールやshutilモジュールと併用できます。このサイトでは、statモジュールの主な関数や定数について、使用例や注意点とともに紹介しています。
os.pathモジュールは、ファイルやディレクトリのパスを操作するためのもので、osモジュールやshutilモジュールと併用できます。このサイトでは、os.pathモジュールの主な関数や属性について、使用例や注意点とともに紹介しています。
os.pathモジュールは、以下の4つのカテゴリに分けられる関数や属性を提供します。 パスの構成要素を取得するもの: os.path.basename(path), os.path.dirname(path), os.path.split(path), os.path.splitext(path)などの関数 パスの構成要素を結合するもの: os.path.join(path, *paths), os.path.normpath(path), os.path.abspath(path), os.path.relpath(path, start=None)などの関数 パスの存在や種類を判定するもの: os.path.exists(path), os.path.isfile(path), os.path.isdir(path), os.path.islink(path)などの関数 パスの状態や属性を取得するもの: os.path.getsize(path), os.path.getmtime(path), os.path.getatime(path), os.path.samefile(path1, path2)などの関数 os.pathモジュールは、プラットフォームに応じて最適な方法でパスを操作しますが、必要に応じてカスタマイズすることもできます。例えば、os.sep, os.altsep, os.extsepなどの属性を指定したり、ntpathやposixpathなどのサブモジュールを直接呼び出したりできます。
fileinputモジュールは、複数のファイルや標準入力から行を読み込むためのもので、sysモジュールやosモジュールと併用できます。このサイトでは、fileinputモジュールの主な関数やクラスについて、使用例や注意点とともに紹介しています。
fileinputモジュールは、以下の2つのカテゴリに分けられる関数やクラスを提供します。 ファイルや標準入力から行を読み込むもの: fileinput.input(files=None, inplace=False, backup='', bufsize=0, mode='r', openhook=None), fileinput.FileInput(files=None, inplace=False, backup='', bufsize=0, mode='r', openhook=None)などの関数やクラス 読み込んだ行に関する情報を取得するもの: fileinput.filename(), fileinput.fileno(), fileinput.lineno(), fileinput.filelineno()などの関数やメソッド fileinputモジュールは、ファイルや標準入力から行を読み込む際に、いくつかのオプションを指定することができます。例えば、inplaceオプションを指定することで、ファイルを上書きすることができます。backupオプションを指定することで、ファイルのバックアップを作成することができます。openhookオプションを指定することで、ファイルを開く際にカスタムな処理を行うことができます。 fileinputモジュールは、読み込んだ行に関する情報を取得する際に、いくつかの便利な関数やメソッドも提供しています。例えば、fileinput.isfirstline()関数やメソッドを使うことで、現在の行がファイルの最初の行かどうかを判定できます。fileinput.isstdin()関数やメソッドを使うことで、現在のファイルが標準入力かどうかを判定できます。fileinput.nextfile()関数やメソッドを使うことで、次のファイルに移動できます。
pathlibモジュールは、ファイルやディレクトリのパスをオブジェクト指向で操作するためのもので、osモジュールやos.pathモジュールと併用できます。このサイトでは、pathlibモジュールの主なクラスやメソッドについて、使用例や注意点とともに紹介しています。
pathlibモジュールは、以下の3つのカテゴリに分けられるクラスやメソッドを提供します。 パスオブジェクトを作成するもの: pathlib.Path(pathsegments), pathlib.PurePath(pathsegments), pathlib.PurePosixPath(pathsegments), pathlib.PureWindowsPath(pathsegments)などのクラス パスオブジェクトの構成要素を取得するもの: Path.name, Path.stem, Path.suffix, Path.parent, Path.partsなどの属性やメソッド パスオブジェクトの構成要素を結合するもの: Path.joinpath(*other), Path.truediv(key), Path.with_name(name), Path.with_suffix(suffix)などのメソッド pathlibモジュールは、パスオブジェクトに対して、ファイルやディレクトリの操作や情報を行うためのメソッドも提供しています。例えば、Path.exists(), Path.is_file(), Path.is_dir(), Path.is_symlink()などのメソッドでパスの存在や種類を判定できます。Path.open(mode='r', buffering=-1, encoding=None, errors=None, newline=None), Path.read_text(encoding=None, errors=None), Path.write_text(data, encoding=None, errors=None)などのメソッドでパスに対応するファイルを開いたり読み書きしたりできます。Path.iterdir(), Path.glob(pattern), Path.rglob(pattern)などのメソッドでパスに対応するディレクトリ内のファイルやサブディレクトリを探索できます。 pathlibモジュールは、プラットフォームに応じて最適な方法でパスを操作しますが、必要に応じてカスタマイズすることもできます。例えば、PurePosixPathやPureWindowsPathなどのサブクラスを使うことで、特定のプラットフォームのパス形式を強制できます。PurePath.as_posix(), PureWindowsPath.as_uri()などのメソッドを使うことで、パスオブジェクトを他の形式に変換できます。
pickleモジュールは、Pythonオブジェクトをバイト列に変換したり、バイト列からPythonオブジェクトに復元したりするためのもので、ファイルやネットワークなどにオブジェクトを保存したり送信したりする際に利用できます。このサイトでは、pickleモジュールの主な関数やクラスについて、使用例や注意点とともに紹介しています。
このサイトをまとめると、以下のようになります。
pickleモジュールは、以下の2つのカテゴリに分けられる関数やクラスを提供します。 Pythonオブジェクトをバイト列に変換するもの: pickle.dumps(obj, protocol=None, , fix_imports=True, buffer_callback=None), pickle.dump(obj, file, protocol=None, , fix_imports=True, buffer_callback=None)などの関数やpickle.Pickler(file, protocol=None, , fix_imports=True, buffer_callback=None)クラス バイト列からPythonオブジェクトに復元するもの: pickle.loads(bytes_object, , fix_imports=True, encoding="ASCII", errors="strict", buffers=None), pickle.load(file, , fix_imports=True, encoding="ASCII", errors="strict", buffers=None)などの関数やpickle.Unpickler(file, , fix_imports=True, encoding="ASCII", errors="strict", buffers=None)クラス pickleモジュールは、Pythonオブジェクトをバイト列に変換する際に、いくつかのオプションを指定することができます。例えば、protocol引数を指定することで、ピックル化するバイト列の形式を選択できます。fix_imports引数を指定することで、Python 2とPython 3の互換性を保つことができます。buffer_callback引数を指定することで、ピックル化するバイト列の一部を別の場所に保存することができます。 pickleモジュールは、バイト列からPythonオブジェクトに復元する際に、いくつかのオプションを指定することができます。例えば、encoding引数を指定することで、ピックル化されたバイト列の文字エンコーディングを指定できます。errors引数を指定することで、ピックル化されたバイト列のデコードエラーの処理方法を指定できます。buffers引数を指定することで、ピックル化されたバイト列の一部が別の場所に保存されている場合にそれらを取得できます。
sqlite3モジュールは、SQLiteという組み込み型のリレーショナルデータベースを操作するためのもので、データの保存や検索などに利用できます。このサイトでは、sqlite3モジュールの主な関数やクラスについて、使用例や注意点とともに紹介しています。
このサイトをまとめると、以下のようになります。
sqlite3モジュールは、以下の4つのカテゴリに分けられる関数やクラスを提供します。 データベース接続を作成するもの: sqlite3.connect(database[, timeout, detect_types, isolation_level, check_same_thread, factory, cached_statements, uri]), sqlite3.Connection(database[, timeout, detect_types, isolation_level, check_same_thread, factory, cached_statements, uri])などの関数やクラス SQL文を実行するもの: connection.execute(sql[, parameters]), connection.executemany(sql, seq_of_parameters), connection.executescript(sql_script), connection.cursor([cursorClass])などのメソッドやsqlite3.Cursorクラス SQL文の結果を取得するもの: cursor.fetchone(), cursor.fetchmany([size=cursor.arraysize]), cursor.fetchall(), cursor.rowcountなどのメソッドや属性 データベース接続を管理するもの: connection.commit(), connection.rollback(), connection.close(), connection.isolation_levelなどのメソッドや属性 sqlite3モジュールは、データベース接続を作成する際に、いくつかのオプションを指定することができます。例えば、database引数を指定することで、データベースファイル名やURIを指定できます。timeout引数を指定することで、データベースロック時のタイムアウト時間を指定できます。detect_types引数を指定することで、データ型変換の方法を指定できます。 sqlite3モジュールは、SQL文を実行する際に、いくつかの便利な機能やカスタマイズも提供しています。例えば、parameters引数を指定することで、SQL文にプレースホルダーを埋め込んだりバインドしたりできます。row_factory属性を指定することで、SQL文の結果を返すオブジェクトの種類を変更したりカスタマイズしたりできます。create_function, create_aggregate, create_collationなどのメソッドを使うことで、SQL文内で使えるユーザー定義関数や集約関数や照合順序を作成したり登録したりできます
osは、オペレーティングシステム(OS)に関する様々な機能を提供します。osでできることは、以下のようなものです。
ファイルやディレクトリの操作:ファイルやディレクトリの作成や削除や移動やコピーなどを行う。例えば、mkdirやremoveやrenameやcopyなどの関数を使う。 ファイルやディレクトリの情報の取得:ファイルやディレクトリのサイズやパーミッションや所有者などの情報を取得する。例えば、statやaccessやgetsizeなどの関数を使う。 プロセスの管理:プロセスの起動や終了や待機や通信などを行う。例えば、systemやpopenやwaitpidなどの関数を使う。 環境変数の操作:環境変数の設定や取得や削除などを行う。例えば、environやgetenvやputenvなどの関数を使う。
ioは、入出力(I/O)に関する様々なクラスや関数を提供します。ioでできることは、以下のようなものです。
ファイルの読み書き:ファイルからデータを読み込んだり、データをファイルに書き込んだりする。例えば、openやFileIOやTextIOWrapperなどのクラスを使う。 メモリ上のストリームの操作:メモリ上にあるデータをストリームとして扱ったり、ストリームからデータを取得したりする。例えば、BytesIOやStringIOなどのクラスを使う。 バイナリデータとテキストデータの変換:バイナリデータとテキストデータを相互に変換したり、エンコーディングや改行コードなどを指定したりする。例えば、TextIOBaseやBufferedReaderやBufferedWriterなどのクラスを使う
timeは、時間に関する様々な関数やクラスを提供します。timeでできることは、以下のようなものです。
時間の取得:現在の時間や日付やタイムゾーンなどを取得する。例えば、timeやctimeやlocaltimeなどの関数を使う。 時間の変換:時間を文字列や数値や構造体などに変換したり、逆に変換したりする。例えば、strftimeやstrptimeやmktimeなどの関数を使う。 時間の計測:プログラムの実行時間や待機時間などを計測したり、制御したりする。例えば、perf_counterやsleepやmonotonicなどの関数を使う。
argparseは、コマンドライン引数を解析するためのモジュールです。argparseでできることは、以下のようなものです。
コマンドライン引数の定義:プログラムが受け取る引数の名前や型やオプションやヘルプメッセージなどを定義する。例えば、ArgumentParserやadd_argumentなどのクラスやメソッドを使う。 コマンドライン引数の解析:プログラムに渡された引数を解析して、値やエラーなどを取得する。例えば、parse_argsやparse_known_argsなどのメソッドを使う。 コマンドライン引数のヘルプ表示:プログラムの使い方や引数の説明などを表示する。例えば、helpやusageなどのオプションやメソッドを使う。
loggingは、プログラムの動作や状態やエラーなどを記録するためのモジュールです。loggingでできることは、以下のようなものです。
ログメッセージの生成:プログラムの任意の場所でログメッセージを生成する。例えば、debugやinfoやwarningなどの関数を使う。 ログメッセージの出力:ログメッセージを標準出力やファイルやネットワークなどに出力する。例えば、StreamHandlerやFileHandlerやSocketHandlerなどのクラスを使う。 ログメッセージの管理:ログメッセージのレベルやフォーマットやフィルターなどを設定する。例えば、LoggerやFormatterやFilterなどのクラスを使う。
ogging.configでできることは、以下のようなものです。
ログ設定の読み込み:ファイルや辞書やJSONなどからログ設定を読み込む。例えば、fileConfigやdictConfigやlistenなどの関数を使う。 ログ設定の変更:プログラム中でログ設定を変更する。例えば、ConvertingDictやConvertingListやConvertingTupleなどのクラスを使う。 ログ設定の拡張:カスタムなログハンドラーやフォーマッターなどを作成する。例えば、BaseConfiguratorやConfiguratorなどのクラスを使う。
logging.handlersは、loggingモジュールのログハンドラーを提供するモジュールです。ログハンドラーとは、ログメッセージを出力するためのオブジェクトです。logging.handlersでできることは、以下のようなものです。
ファイルへのログ出力:ファイルにログメッセージを出力する。例えば、FileHandlerやRotatingFileHandlerやTimedRotatingFileHandlerなどのクラスを使う。 ネットワークへのログ出力:ネットワークにログメッセージを出力する。例えば、SocketHandlerやDatagramHandlerやSysLogHandlerなどのクラスを使う。 メールへのログ出力:メールにログメッセージを出力する。例えば、SMTPHandlerやNTEventLogHandlerやHTTPHandlerなどのクラスを使う。
errnoは、オペレーティングシステムが発生させるエラー番号やエラーシンボルを提供するモジュールです。errnoでできることは、以下のようなものです。
エラー番号の取得:オペレーティングシステムが発生させたエラー番号を取得する。例えば、errnoやerrorcodeなどの変数を使う。 エラーシンボルの取得:エラー番号に対応するエラーシンボルを取得する。例えば、EACCESやENOTDIRなどの定数を使う。 エラーメッセージの取得:エラー番号に対応するエラーメッセージを取得する。例えば、strerrorやgai_strerrorなどの関数を使う。
ctypesは、C言語のライブラリやデータ型をPythonから使うことができるモジュールです。ctypesでできることは、以下のようなものです。
C言語のライブラリの読み込み:C言語で作成された共有ライブラリやDLLなどを読み込む。例えば、CDLLやWinDLLなどのクラスを使う。 C言語の関数の呼び出し:C言語のライブラリに含まれる関数を呼び出す。例えば、restypeやargtypesなどの属性を使って、関数の戻り値や引数の型を指定する。 C言語のデータ型の操作:C言語の基本的なデータ型や構造体や共用体などを操作する。例えば、c_intやc_char_pやStructureなどのクラスを使う。
mailboxモジュールとは、様々な形式のメールボックスを操作するためのモジュールです。メールボックスとは、メールメッセージを格納するファイルやディレクトリのことで、Maildir, mbox, MH, Babyl, MMDF などの形式があります。
このサイトでよく使われる文法を中心にまとめると、以下のようになります。
mailbox.Mailbox: メールボックスの基底クラスです。このクラスはインターフェースを定義し、形式ごとのサブクラスに継承されるように意図されています。このクラスは辞書風のインターフェースを提供し、キーからメッセージへの対応付けを行います。メッセージはMessageクラスのインスタンスとして表現されます。このクラスにはadd(), remove(), discard(), setitem()などのメソッドがあります。 mailbox.Message: メッセージの基底クラスです。このクラスはemail.message.Messageクラスを継承しており、形式ごとのサブクラスに継承されるように意図されています。このクラスはメッセージのヘッダーやペイロードにアクセスするためのメソッドを提供します。このクラスにはget_flags(), set_flags(), add_flag(), remove_flag()などのメソッドがあります。 mailbox.Maildir: Maildir形式のメールボックスを操作するためのMailboxサブクラスです。Maildir形式とは、各メッセージが別々のファイルとして保存される形式です。このクラスはMailboxクラスのインターフェースに加えて、get_file(), get_message(), get_string()などのメソッドがあります。 mailbox.mbox: mbox形式のメールボックスを操作するためのMailboxサブクラスです。mbox形式とは、すべてのメッセージが単一のファイルに連結される形式です。このクラスはMailboxクラスのインターフェースに加えて、get_from(), get_from_lines()などのメソッドがあります。 mailbox.MH: MH形式のメールボックスを操作するためのMailboxサブクラスです。MH形式とは、各メッセージが別々のファイルとして保存される形式で、ディレクトリ階層で分類されるものです。このクラスはMailboxクラスのインターフェースに加えて、get_sequences(), put_sequences()などのメソッドがあります。 mailbox.Babyl: Babyl形式のメールボックスを操作するためのMailboxサブクラスです。Babyl形式とは、Emacs用の古いメールリーダーで使われていた形式で、すべてのメッセージが単一のファイルに連結されるものです。このクラスはMailboxクラスのインターフェースに加えて、get_labels(), set_labels(), add_label(), remove_label()などのメソッドがあります。 mailbox.MMDF: MMDF形式のメールボックスを操作するためのMailboxサブクラスです。MMDF形式とは、すべてのメッセージが単一のファイルに連結される形式で、メッセージの境界に特殊な文字列が使われるものです。このクラスはMailboxクラスのインターフェースをそのまま継承します。
mimetypesモジュールとは、ファイル名やURLと、ファイル名拡張子に関連付けられたMIME型とを変換するためのモジュールです。MIME型とは、メディアタイプやコンテンツタイプとも呼ばれる、インターネット上でデータの種類を表す文字列のことです。
MIME型に変換するメリットは、以下のようなものがあります。
MIME型によって、データの形式や特性を正確に伝えることができます。例えば、‘text/plain’ はプレーンテキストを、‘image/jpeg’ はJPEG形式の画像を、‘application/pdf’ はPDF文書を表します。これによって、データを受け取る側が適切な処理や表示を行うことができます。 MIME型によって、データの符号化方式や圧縮方式も指定できます。例えば、‘text/plain; charset=utf-8’ はUTF-8で符号化されたプレーンテキストを、‘application/gzip’ はgzipで圧縮された任意のデータを表します。これによって、データを送受信する際に効率的な転送や展開が可能になります。 MIME型によって、データの用途や目的も示すことができます。例えば、‘multipart/form-data’ はウェブフォームから送信されるデータを、‘message/rfc822’ は電子メールメッセージを表します。これによって、データを適切なコンテキストで扱うことができます。 このサイトでよく使われる文法を中心にまとめると、以下のようになります。
mimetypes.guess_type(url, strict=True): ファイル名やURLからMIME型と符号化方式を推定する関数です。戻り値は(type, encoding)のタプルです。typeは’type/subtype’の形の文字列で、encodingは符号化方式の名前かNoneです。 mimetypes.guess_extension(type, strict=True): MIME型からファイル拡張子を推定する関数です。戻り値は先頭にドット(‘.’)を含む文字列かNoneです。 mimetypes.guess_all_extensions(type, strict=True): MIME型から可能なファイル拡張子をすべて推定する関数です。戻り値は先頭にドット(‘.’)を含む文字列のリストです。 mimetypes.add_type(type, ext, strict=True): MIME型から拡張子へのマッピングを追加する関数です。既存のマッピングがあれば上書きします。 mimetypes.init(files=None): 内部のデータ構造を初期化する関数です。filesが指定されれば、そのファイル名から型マップを読み込みます。省略されれば、既知のファイル名から読み込みます。 mimetypes.read_mime_types(filename): ファイル名から型マップを読み込む関数です。戻り値は拡張子からMIME型への辞書かNoneです。
json.dumps(obj, kwargs): PythonオブジェクトをJSON形式の文字列に変換します。引数には変換したいオブジェクトと、オプションのキーワード引数を渡します。キーワード引数には、インデントやソートなどの設定を指定できます。 json.loads(s, kwargs): JSON形式の文字列をPythonオブジェクトに変換します。引数には変換したい文字列と、オプションのキーワード引数を渡します。キーワード引数には、パース時のフックやエンコーディングなどの設定を指定できます。 json.dump(obj, fp, kwargs): PythonオブジェクトをJSON形式のファイルに書き込みます。引数には変換したいオブジェクトと、書き込み先のファイルオブジェクトと、オプションのキーワード引数を渡します。キーワード引数はjson.dumps()と同じです。 json.load(fp, kwargs): JSON形式のファイルをPythonオブジェクトに読み込みます。引数には読み込み元のファイルオブジェクトと、オプションのキーワード引数を渡します。キーワード引数はjson.loads()と同じです。 json.JSONEncoder: JSONエンコーダの基底クラスです。このクラスを継承してカスタムエンコーダを作ることができます。カスタムエンコーダでは、default()メソッドをオーバーライドして、PythonオブジェクトからJSON形式への変換方法を定義できます。 json.JSONDecoder: JSONデコーダの基底クラスです。このクラスを継承してカスタムデコーダを作ることができます。カスタムデコーダでは、object_hook()メソッドやobject_pairs_hook()メソッドをオーバーライドして、JSON形式からPythonオブジェクトへの変換方法を定義できます。
base64とは、バイナリデータをテキストデータに変換する方法の一つです。テキストデータは、メールやURLなどでやりとりしやすいです。base64は、バイナリデータを64種類の文字(英数字と+と/)に変換します。Pythonのbase64モジュールは、この変換を行う関数を提供しています。
base64の使い道としては、以下のようなものがあります。
バイナリデータをメールで送信するときに、添付ファイルではなく本文に埋め込むことができます。 バイナリデータをURLに含めるときに、エンコードして安全に渡すことができます。 バイナリデータを画像や音声などのメディアファイルに変換して、HTMLやCSSなどで表示することができます。 バイナリデータを暗号化や署名などのセキュリティ用途に利用することができます。
typingモジュールは、型ヒントと呼ばれる機能をサポートするためのもので、コードの可読性や静的解析などに利用できます。このサイトでは、typingモジュールの主な関数やクラスについて、使用例や注意点とともに紹介しています。
このサイトをまとめると、以下のようになります。
typingモジュールは、以下の3つのカテゴリに分けられる関数やクラスを提供します。 標準的な型やコレクション型を表すもの: typing.Any, typing.Union, typing.Optional, typing.List, typing.Dict, typing.Tupleなどのクラス 抽象的な型やプロトコルを表すもの: typing.Callable, typing.Iterable, typing.Protocol, typing.SupportsInt, typing.SupportsAbsなどのクラス 型変数や型エイリアスを作成するもの: typing.TypeVar(name, constraints, bound=None, covariant=False, contravariant=False), typing.NewType(name, tp), typing.cast(tp, x), typing.get_type_hints(obj, globals=None, locals=None)などの関数 typingモジュールは、型ヒントを記述する際に、いくつかのオプションを指定することができます。例えば、constraints引数を指定することで、型変数が取りうる値の範囲を制限できます。bound引数を指定することで、型変数が継承するべき基底クラスを指定できます。covariant引数やcontravariant引数を指定することで、型変数が共変性や反変性を持つかどうかを指定できます。 typingモジュールは、型ヒントに関する情報を取得する際に、いくつかの便利な関数や属性も提供しています。例えば、get_type_hints関数でオブジェクトに付与された型ヒントを辞書形式で取得できます。cast関数でオブジェクトに任意の型ヒントを付与できます。origin属性やargs属性でパラメータ化された型から元の型や引数の型を取得できます。
pydocモジュールは、Pythonのドキュメントを生成したり表示したりするためのもので、モジュールやクラスや関数などに関する情報を取得できます。このサイトでは、pydocモジュールの主な関数やコマンドについて、使用例や注意点とともに紹介しています。
このサイトをまとめると、以下のようになります。
pydocモジュールは、以下の2つのカテゴリに分けられる関数やコマンドを提供します。 ドキュメントを生成するもの: pydoc.writedoc(object), pydoc.writedocs(dir, pkgpath='', done=None), pydoc.html(), pydoc.apropos(keyword)などの関数や-wオプションなどのコマンド ドキュメントを表示するもの: pydoc.doc(object), pydoc.help(object), pydoc.gui(), pydoc.serve(port=0, ready=None, stopped=None)などの関数や-kオプションや-gオプションや-pオプションなどのコマンド pydocモジュールは、ドキュメントを生成する際に、いくつかのオプションを指定することができます。例えば、object引数を指定することで、ドキュメント化する対象のモジュールやクラスや関数などを指定できます。dir引数を指定することで、ドキュメント化する対象のディレクトリを指定できます。port引数を指定することで、ドキュメントを提供するWebサーバーのポート番号を指定できます。 pydocモジュールは、ドキュメントを表示する際に、いくつかの方法をサポートしています。例えば、help関数や-hオプションで対話的にドキュメントを参照できます。gui関数や-gオプションでグラフィカルなインターフェースからドキュメントを参照できます。serve関数や-pオプションでWebブラウザからドキュメントを参照できます。
Pythonの標準ライブラリの一部であるdevmodeモジュールについて説明しています。devmodeモジュールは、開発者モードと呼ばれる機能をサポートするためのもので、デバッグやテストなどに利用できます。このサイトでは、devmodeモジュールの主な関数やコマンドについて、使用例や注意点とともに紹介しています。
このサイトをまとめると、以下のようになります。
devmodeモジュールは、以下の2つのカテゴリに分けられる関数やコマンドを提供します。 開発者モードを有効化するもの: devmode.enable(), devmode.is_enabled(), python -X devなどの関数やコマンド 開発者モードの効果を確認するもの: devmode.check_resource_warning(), devmode.check_asyncio_debug(), devmode.check_import_time(), devmode.check_hash_randomization()などの関数 devmodeモジュールは、開発者モードを有効化する際に、いくつかのオプションを指定することができます。例えば、-X devオプションを指定することで、コマンドラインから開発者モードを有効化できます。PYTHONDEVMODE環境変数を指定することで、環境変数から開発者モードを有効化できます。enable関数を呼び出すことで、プログラム内から開発者モードを有効化できます。 devmodeモジュールは、開発者モードの効果について、いくつかの情報を提供しています。例えば、開発者モードが有効化されると、以下のような効果があります。 リソース警告が常に表示されます。 asyncioデバッグモードが有効化されます。 モジュールのインポート時間が表示されます。 ハッシュ値のランダム化が有効化されます。
doctestモジュールは、ドキュメントに埋め込まれた対話的な例をテストするためのもので、ユニットテストやドキュメント生成などに利用できます。このサイトでは、doctestモジュールの主な関数やクラスについて、使用例や注意点とともに紹介しています。
このサイトをまとめると、以下のようになります。
doctestモジュールは、以下の3つのカテゴリに分けられる関数やクラスを提供します。 ドキュメントからテストを抽出するもの: doctest.DocTestFinder(verbose=False, exclude_empty=False, parser=None, recurse=True, parse_namedtuple=True), doctest.DocTestParser(optionflags=0, checker=None)などのクラス テストを実行するもの: doctest.DocTestRunner(checker=None, verbose=None, optionflags=0), doctest.testmod(m=None, name=None, globs=None, verbose=None, report=True, optionflags=0, extraglobs=None, raise_on_error=False, exclude_empty=False), doctest.testfile(filename, module_relative=True, name=None, package=None, globs=None, verbose=None, report=True, optionflags=0, extraglobs=None, raise_on_error=False, parser=DocTestParser(), encoding=None)などのクラスや関数 テストの結果を報告するもの: doctest.DocTestResult(runner), doctest.TestResults(failed, attempted), doctest.OutputChecker(), doctest.register_optionflag(name)などのクラスや関数 doctestモジュールは、ドキュメントからテストを抽出する際に、いくつかのオプションを指定することができます。例えば、verbose引数を指定することで、抽出されたテストの詳細を表示できます。exclude_empty引数を指定することで、空白やコメントだけのドキュメントを無視できます。parser引数を指定することで、カスタムなドキュメントパーサーを使えます。 doctestモジュールは、テストを実行する際に、いくつかのオプションを指定することができます。例えば、checker引数を指定することで、カスタムな出力チェッカーを使えます。verbose引数を指定することで、テストの実行過程や結果を表示できます。optionflags引数を指定することで、テストの挙動や出力形式を変更できます。 doctestモジュールは、テストの結果を報告する際に、いくつかの情報を提供しています。例えば、failed属性やattempted属性で失敗したテストや試行したテストの数を取得できます。OutputChecker.check_output(want, got, optionflags)メソッドで期待される出力と実際の出力が一致するかどうかを判定できます。register_optionflag関数で新しいオプションフラグを登録できます。
unittestモジュールは、ユニットテストと呼ばれる機能をサポートするためのもので、コードの正しさや品質などを検証できます。このサイトでは、unittestモジュールの主な関数やクラスについて、使用例や注意点とともに紹介しています。
このサイトをまとめると、以下のようになります。
unittestモジュールは、以下の4つのカテゴリに分けられる関数やクラスを提供します。 テストケースを作成するもの: unittest.TestCase(methodName='runTest'), unittest.FunctionTestCase(testFunc, setUp=None, tearDown=None, description=None)などのクラス テストケースを実行するもの: unittest.TestResult(), unittest.TestSuite(tests=()), unittest.TestLoader(), unittest.TextTestRunner(stream=None, descriptions=True, verbosity=1, failfast=False, buffer=False, resultclass=None, warnings=None, *, tb_locals=False)などのクラス テストケースの結果を報告するもの: result.startTest(test), result.stopTest(test), result.addSuccess(test), result.addFailure(test, err), result.addError(test, err), result.addSkip(test, reason), result.addExpectedFailure(test, err), result.addUnexpectedSuccess(test)などのメソッド テストケースの挙動を制御するもの: test.setUp(), test.tearDown(), test.skipTest(reason), test.subTest(msg=None, *params), test.assertなどのメソッド unittestモジュールは、テストケースを作成する際に、いくつかのオプションを指定することができます。例えば、methodName引数を指定することで、テストケースとして実行するメソッド名を指定できます。testFunc引数を指定することで、テストケースとして実行する関数を指定できます。description引数を指定することで、テストケースに説明文を付与できます。 unittestモジュールは、テストケースを実行する際に、いくつかのオプションを指定することができます。例えば、stream引数を指定することで、テスト結果を出力するストリームオブジェクトを指定できます。verbosity引数を指定することで、テスト結果の出力レベルを指定できます。failfast引数を指定することで、最初に失敗したテストで実行を停止できます。 unittestモジュールは、テストケースの結果を報告する際に、いくつかの情報を提供しています。例えば、result.wasSuccessful()メソッドで全てのテストが成功したかどうかを判定できます。result.errors属性やresult.failures属性で失敗したテストやエラー発生したテストのリストを取得できます。result.skipped属性やresult.expectedFailures属性やresult.unexpectedSuccesses属性でスキップされたテストや期待通り失敗したテストや期待外れに成功したテストのリストを取得できます
unittest.mockモジュールは、モックオブジェクトと呼ばれる機能をサポートするためのもので、テスト対象のコードに依存するオブジェクトや振る舞いを置き換えたり記録したりできます。このサイトでは、unittest.mockモジュールの主な関数やクラスについて、使用例や注意点とともに紹介しています。
このサイトをまとめると、以下のようになります。
unittest.mockモジュールは、以下の3つのカテゴリに分けられる関数やクラスを提供します。 モックオブジェクトを作成するもの: unittest.mock.Mock(spec=None, side_effect=None, return_value=DEFAULT, wraps=None, name=None, spec_set=None, unsafe=False, kwargs), unittest.mock.MagicMock(spec=None, side_effect=None, return_value=DEFAULT, wraps=None, name=None, spec_set=None, unsafe=False, kwargs), unittest.mock.NonCallableMock(spec=None, side_effect=None, return_value=DEFAULT, wraps=None, name=None, spec_set=None, unsafe=False, kwargs), unittest.mock.NonCallableMagicMock(spec=None, side_effect=None, return_value=DEFAULT, wraps=None, name=None, spec_set=None, unsafe=False, kwargs)などのクラス モックオブジェクトの操作を行うもの: mock.assert_called(), mock.assert_called_once(), mock.assert_called_with(*args, kwargs), mock.assert_called_once_with(*args, *kwargs), mock.assert_has_calls(calls, any_order=False), mock.assert_not_called(), mock.reset_mock(args, kwargs), mock.configure_mock(kwargs)などのメソッド モックオブジェクトに関する情報を取得するもの: mock.called, mock.call_count, mock.call_args, mock.call_args_list, mock.method_calls, mock.mock_callsなどの属性 unittest.mockモジュールは、モックオブジェクトを作成する際に、いくつかのオプションを指定することができます。例えば、spec引数やspec_set引数を指定することで、モックオブジェクトが模倣するオブジェクトや属性を指定できます。side_effect引数を指定することで、モックオブジェクトが呼び出されたときに発生する例外や返す値を指定できます。return_value引数を指定することで、モックオブジェクトが呼び出されたときに返す値を指定できます。 unittest.mockモジュールは、モックオブジェクトに対して、いくつかの便利な関数やデコレータも提供しています。例えば、unittest.mock.patch(target, new=DEFAULT, spec=None, create=False, spec_set=None, autospec=None, new_callable=None, kwargs)関数やデコレータでテスト中にオブジェクトや属性を置き換えたり元に戻したりできます。unittest.mock.patch.object(target, attribute, new=DEFAULT, spec=None, create=False, spec_set=None, autospec=None, new_callable=None)関数やデコレータでテスト中にオブジェクトの属性を置き換えたり元に戻したりできます。unittest.mock.patch.dict(in_dict, values=(), clear=False)関数やデコレータでテスト中に辞書型オブジェクトの内容を置き換えたり元に戻したりできます。
python2 系からpython3系にコードを変換することができる
testモジュールは、Pythonのテストスイートと呼ばれる機能をサポートするためのもので、Pythonの品質や互換性などを検証できます。このサイトでは、testモジュールの主な関数やクラスについて、使用例や注意点とともに紹介しています。
このサイトをまとめると、以下のようになります。
testモジュールは、以下の3つのカテゴリに分けられる関数やクラスを提供します。 テストスイートを実行するもの: test.regrtest.main(tests=None, testdir=None, verbose=0, quiet=False, generate=False, exclude=False, single=False, randomize=False, fromfile=None, findleaks=False, use_resources=None, trace=False, coverdir='coverage', runleaks=False, huntrleaks=False, verbose2=False, print_slow=False, random_seed=None, multiprocessing=True, use_mp_main=True), test.support.run_unittest(*classes)などの関数 テストスイートの結果を報告するもの: test.support.TestResult, test.support.TestFailedなどのクラス テストスイートの挙動を制御するもの: test.support.verbose, test.support.use_resources, test.support.max_memuse, test.support.transient_internet(resource_name), test.support.requires(resource_name, msg=None)などの変数や関数 testモジュールは、テストスイートを実行する際に、いくつかのオプションを指定することができます。例えば、tests引数を指定することで、実行するテストケースやモジュール名を指定できます。verbose引数を指定することで、テスト結果の出力レベルを指定できます。findleaks引数を指定することで、メモリリークを検出できます。 testモジュールは、テストスイートに対して、いくつかの情報や制約を提供しています。例えば、use_resources変数で利用可能なリソース名のリストを取得できます。transient_internet関数やrequires関数でテストケースに必要なリソースが利用可能かどうかを判定できます。max_memuse変数でテストケースが消費できる最大メモリ量を制限できます。
csvは、CSV(Comma-Separated Values)という形式のファイルを読み書きすることができます。CSVファイルは、カンマやタブなどで区切られたデータを含むテキストファイルです。csvでよく使うものは、以下のようなものです。
reader:CSVファイルからデータを読み込むためのオブジェクトです。ファイルオブジェクトや文字列などを引数に渡して作成します。for文やnext関数などでデータを取得できます。 writer:CSVファイルにデータを書き込むためのオブジェクトです。ファイルオブジェクトや文字列などを引数に渡して作成します。writerowやwriterowsなどのメソッドでデータを書き込めます。 DictReader:CSVファイルからデータを読み込むためのオブジェクトです。readerと同じように作成しますが、データを辞書型で取得できます。キーは、ファイルの最初の行や引数で指定したフィールド名です。 DictWriter:CSVファイルにデータを書き込むためのオブジェクトです。writerと同じように作成しますが、データを辞書型で書き込めます。キーは、引数で指定したフィールド名です。
Pythonのsysモジュールは、インタプリタや実行環境に関する情報を扱うためのライブラリです¹。例えば、以下のようなことができます。
sysモジュールを使った例をいくつか紹介します。
import sys
print(sys.platform) # プラットフォームを表示
print(sys.version) # バージョンを表示
import sys
print(sys.argv) # コマンドライン引数のリストを表示
print(sys.argv[0]) # スクリプト名を表示
print(sys.argv[1]) # 1番目の引数を表示
import sys
sys.exit() # プログラムを終了させる
import sys
sys.stdin.readline() # 標準入力から一行読み込む
sys.stdout.write("Hello\n") # 標準出力に一行書き込む
sys.stderr.write("Error\n") # エラー出力に一行書き込む
reは、正規表現を使って文字列を検索したり置換したり分割したりすることができます。reでできることは、以下のようなものです。
文字列のパターンマッチング:文字列に特定のパターンが含まれているかどうかを調べる。例えば、メールアドレスや電話番号やURLなどの形式をチェックする。 文字列の抽出:文字列から特定のパターンに一致する部分を取り出す。例えば、HTMLやXMLなどのタグや属性や内容を抽出する。 文字列の置換:文字列の特定のパターンに一致する部分を別の文字列に置き換える。例えば、スペルミスや誤字脱字を修正したり、単語やフレーズを変更したりする。 文字列の分割:文字列を特定のパターンに一致する部分で区切る。例えば、カンマやスペースや改行などで区切られたデータを分割する。
stringは、文字列に関する様々な定数や関数やクラスを提供します。stringでできることは、以下のようなものです。
文字列の定数:文字列に関する便利な定数を使う。例えば、ascii_lettersやdigitsやpunctuationなどの文字集合を使う。 文字列のフォーマット:文字列に変数や値を埋め込んだり、書式を指定したりする。例えば、formatやTemplateなどの関数やクラスを使う。 文字列の操作:文字列を変換したり、結合したり、分割したりする。例えば、capwordsやjoinやsplitなどの関数を使う。
asyncioモジュールは、非同期プログラミングを行うためのもので、並行処理やネットワーク通信などに利用できます。このサイトでは、asyncioモジュールの主な関数やクラスについて、使用例や注意点とともに紹介しています。
このサイトをまとめると、以下のようになります。
asyncioモジュールは、以下の4つのカテゴリに分けられる関数やクラスを提供します。 イベントループを管理するもの: asyncio.get_event_loop(), asyncio.new_event_loop(), asyncio.set_event_loop(loop), asyncio.run(coro, , debug=False)などの関数やasyncio.AbstractEventLoopクラス コルーチンやタスクを作成するもの: asyncio.coroutine(func), asyncio.create_task(coro, , name=None), asyncio.gather(coros_or_futures, loop=None, return_exceptions=False), asyncio.wait_for(fut, timeout, , loop=None)などの関数やasyncio.Taskクラス フューチャーやプロミスを作成するもの: asyncio.Future(loop=None), asyncio.ensure_future(coro_or_future, , loop=None), asyncio.wrap_future(future, , loop=None), asyncio.run_coroutine_threadsafe(coro, loop)などの関数やasyncio.Futureクラス 非同期ストリームやプロトコルを作成するもの: asyncio.open_connection(host=None, port=None, *, loop=None, limit=None, *kwds), asyncio.start_server(client_connected_cb, host=None, port=None, , loop=None, **kwds), asyncio.StreamReader(loop=None), asyncio.StreamWriter(transport, protocol, reader, loop)などの関数やasyncio.StreamReaderクラスやasyncio.StreamWriterクラス asyncioモジュールは、非同期プログラミングにおいて、いくつかのオプションを指定することができます。例えば、coro引数を指定することで、コルーチンオブジェクトを指定できます。loop引数を指定することで、イベントループオブジェクトを指定できます。timeout引数を指定することで、タイムアウト時間を指定できます。 asyncioモジュールは、非同期プログラミングにおいて、いくつかの便利な関数やデコレータも提供しています。例えば、async def構文でコルーチン関数を定義したり、await式でコルーチンやフューチャーの完了を待ったりできます。@asyncio.coroutineデコレータでコルーチン関数を定義したり、yield from式でコルーチンやフューチャーの完了を待ったりできます。
mmapモジュールは、ファイルやデバイスをメモリにマッピングするためのもので、osモジュールやstructモジュールと併用できます。このサイトでは、mmapモジュールの主な関数やクラスについて、使用例や注意点とともに紹介しています。
このサイトをまとめると、以下のようになります。
mmapモジュールは、以下の2つのカテゴリに分けられる関数やクラスを提供します。 メモリマップオブジェクトを作成するもの: mmap.mmap(fileno, length, tagname=None, access=ACCESS_DEFAULT[, offset]), mmap.mmap(-1, length)などの関数やクラス メモリマップオブジェクトの操作を行うもの: mmap.close(), mmap.flush([offset[, size]]), mmap.read([n]), mmap.write(bytes)などのメソッド mmapモジュールは、メモリマップオブジェクトに対して、いくつかのオプションを指定することができます。例えば、fileno引数を指定することで、ファイルやデバイスのファイル記述子を指定できます。length引数を指定することで、マッピングするバイト数を指定できます。access引数を指定することで、読み込み専用や書き込み可能やコピー可能などのアクセスモードを指定できます。 mmapモジュールは、メモリマップオブジェクトに対して、バイト列やファイルオブジェクトと同様の操作を行うためのメソッドも提供しています。例えば、mmap.find(sub[, start[, end]]), mmap.tell(), mmap.seek(pos[, whence]), mmap.readline()などのメソッドでメモリマップオブジェクト内のデータを検索したり位置を移動したり読み込んだりできます。mmap.resize(newsize), mmap.move(dest, src, count), mmap.write_byte(byte)などのメソッドでメモリマップオブジェクト内のデータを変更したり書き込んだりできます。
signalモジュールは、シグナルと呼ばれる非同期的なイベントを処理するためのもので、osモジュールやthreadingモジュールと併用できます。このサイトでは、signalモジュールの主な関数や定数について、使用例や注意点とともに紹介しています。
このサイトをまとめると、以下のようになります。
signalモジュールは、以下の3つのカテゴリに分けられる関数や定数を提供します。 シグナルハンドラを設定するもの: signal.signal(sig, action), signal.getsignal(sig), signal.default_int_handler(signum, frame)などの関数 シグナルを送信するもの: signal.raise_signal(sig), signal.kill(pid, sig), signal.pthread_kill(thread_id, sig)などの関数 シグナルを制御するもの: signal.alarm(time), signal.pause(), signal.sigpending(), signal.sigwaitinfo(set[, timeout])などの関数 signalモジュールは、シグナルハンドラに対して、いくつかのオプションを指定することができます。例えば、action引数を指定することで、シグナルを無視したりデフォルト動作に戻したりカスタムな関数を呼び出したりできます。sig引数を指定することで、特定のシグナル番号や名前を指定できます。 signalモジュールは、シグナルに関する情報を取得する際に、いくつかの便利な関数や定数も提供しています。例えば、signal.strsignal(sig)関数でシグナル名や説明を取得できます。signal.SIG_DFL, signal.SIG_IGN, signal.SIGINT, signal.SIGTERMなどの定数でシグナルハンドラやシグナル種類などの値を表現できます。
selectorsモジュールは、複数の入出力チャネルに対してイベント監視を行うための高水準のインターフェースを提供するもので、selectモジュールやsocketモジュールと併用できます。このサイトでは、selectorsモジュールの主な関数やクラスについて、使用例や注意点とともに紹介しています。
このサイトをまとめると、以下のようになります。
selectorsモジュールは、以下の2つのカテゴリに分けられる関数やクラスを提供します。 セレクタオブジェクトを作成するもの: selectors.DefaultSelector(), selectors.SelectSelector(), selectors.PollSelector(), selectors.EpollSelector(), selectors.KqueueSelector()などの関数やクラス セレクタオブジェクトの操作を行うもの: selector.register(fileobj, events, data=None), selector.unregister(fileobj), selector.select(timeout=None), selector.modify(fileobj, events, data=None)などのメソッド selectorsモジュールは、セレクタオブジェクトに対して、入出力チャネルのイベント監視を行うためのメソッドを提供しています。例えば、registerメソッドで入出力チャネルを登録したり、unregisterメソッドで入出力チャネルを解除したりできます。selectメソッドで入出力チャネルのイベントを監視したり、modifyメソッドで入出力チャネルのイベントマスクやデータを変更したりできます。 selectorsモジュールは、セレクタオブジェクトに対して、入出力チャネルのイベントを表すための定数やオブジェクトも提供しています。例えば、selectors.EVENT_READ, selectors.EVENT_WRITEなどの定数で読み込み可能や書き込み可能などのイベントを表現できます。selectors.SelectorKeyオブジェクトで入出力チャネルやイベントマスクやデータなどの情報を保持できます。selectors.EVENT_READ | selectors.EVENT_WRITEなどのビット演算で複数のイベントを組み合わせることができます
selectモジュールは、複数の入出力チャネルに対してイベント監視を行うためのもので、socketモジュールやsslモジュールと併用できます。このサイトでは、selectモジュールの主な関数やクラスについて、使用例や注意点とともに紹介しています。
このサイトをまとめると、以下のようになります。
selectモジュールは、以下の4つのカテゴリに分けられる関数やクラスを提供します。 入出力チャネルのイベント監視を行うもの: select.select(rlist, wlist, xlist, timeout=None), select.poll(), select.epoll(sizehint=-1, flags=0), select.kqueue()などの関数やクラス 入出力チャネルのイベントを表すもの: select.Poll, select.EPoll, select.KQueue, select.KEventなどのクラス 入出力チャネルのイベントを処理するもの: poll.register(fd[, eventmask]), epoll.modify(fd, eventmask), kqueue.control(changelist, max_events, timeout=None)などのメソッド 入出力チャネルのイベントに関する情報を取得するもの: poll.poll([timeout]), epoll.poll([timeout[, maxevents]]), kevent.ident, kevent.filterなどのメソッドや属性 selectモジュールは、入出力チャネルのイベント監視において、プラットフォームに応じて最適な方法をサポートしています。例えば、select関数は、ほとんどすべてのプラットフォームで利用できますが、効率が悪い場合があります。pollクラスは、Unix系プラットフォームで利用できますが、Windowsでは利用できません。epollクラスは、Linuxプラットフォームで利用できますが、他のプラットフォームでは利用できません。kqueueクラスは、BSD系プラットフォームで利用できますが、他のプラットフォームでは利用できません。 selectモジュールは、入出力チャネルのイベントを表す際に、いくつかの定数を提供しています。例えば、select.POLLIN, select.POLLOUT, select.POLLERRなどの定数で読み込み可能や書き込み可能やエラー発生などのイベントを表現できます。select.EPOLLIN, select.EPOLLOUT, select.EPOLLERRなどの定数でepollオブジェクトに対するイベントを表現できます。select.KQ_FILTER_READ, select.KQ_FILTER_WRITE, select.KQ_EV_ERRORなどの定数でkqueueオブジェクトに対するイベントを表現できます。
socketモジュールは、ネットワーク通信を行うための低水準のインターフェースを提供するもので、selectモジュールやsslモジュールと併用できます。このサイトでは、socketモジュールの主な関数やクラスについて、使用例や注意点とともに紹介しています。
このサイトをまとめると、以下のようになります。
socketモジュールは、以下の3つのカテゴリに分けられる関数やクラスを提供します。 ソケットオブジェクトを作成するもの: socket.socket(family=AF_INET, type=SOCK_STREAM, proto=0, fileno=None), socket.fromfd(fd, family, type, proto=0), socket.fromshare(info)などの関数やクラス ソケットオブジェクトの操作を行うもの: socket.bind(address), socket.listen(backlog), socket.accept(), socket.connect(address), socket.send(data[, flags]), socket.recv(bufsize[, flags])などのメソッド ソケットオブジェクトに関する情報を取得するもの: socket.getsockname(), socket.getpeername(), socket.getsockopt(level, optname[, buflen]), socket.fileno()などのメソッド socketモジュールは、ソケットオブジェクトに対して、いくつかのオプションを指定することができます。例えば、family引数を指定することで、IPv4やIPv6などのアドレスファミリーを選択できます。type引数を指定することで、TCPやUDPなどのソケットタイプを選択できます。proto引数を指定することで、特定のプロトコル番号を指定できます。 socketモジュールは、ソケットオブジェクトに関する情報を取得する際に、いくつかの便利な関数や定数も提供しています。例えば、socket.gethostname(), socket.gethostbyname(hostname), socket.gethostbyaddr(ip_address)などの関数でホスト名やIPアドレスなどの情報を取得できます。socket.AF_INET, socket.SOCK_STREAM, socket.SOL_SOCKETなどの定数でアドレスファミリーやソケットタイプやオプションレベルなどの値を表現できます。
structは、バイト列とPythonのオブジェクトを相互に変換することができます。structでできることは、以下のようなものです。
バイナリファイルの読み書き:バイナリファイルからデータを読み込んだり、データをバイナリファイルに書き込んだりする。例えば、画像や音声や動画などのメディアファイルを扱う。 ネットワーク通信のデータ交換:ネットワーク上でデータを送受信する際に、データをバイト列に変換したり、バイト列からデータに変換したりする。例えば、TCPやUDPなどのプロトコルを使って通信する。 メモリ上のデータ構造の操作:メモリ上にあるデータ構造をバイト列に変換したり、バイト列からデータ構造に変換したりする。例えば、C言語や他の言語とのインターフェースを作る。
codecsは、文字列とバイト列を相互に変換することができます。codecsでできることは、以下のようなものです。
文字エンコーディングの変換:文字列をバイト列に変換したり、バイト列を文字列に変換したりする。例えば、UTF-8やShift-JISやEUC-JPなどのエンコーディングを使う。 テキストファイルの読み書き:テキストファイルから文字列を読み込んだり、文字列をテキストファイルに書き込んだりする。例えば、テキストエディタやCSVファイルやXMLファイルなどを扱う。 バイナリファイルの読み書き:バイナリファイルからバイト列を読み込んだり、バイト列をバイナリファイルに書き込んだりする。例えば、ZIPファイルやBASE64ファイルやHEXファイルなどを扱う。
zlibとは:
zlibは、データ圧縮アルゴリズムであるDEFLATEを提供するライブラリです。 DEFLATEは、LZ77(Lempel-Ziv 77)とハフマン符号化を組み合わせたアルゴリズムで、非常に効率的なデータ圧縮を行います。 zlibライブラリは、C言語で実装されており、様々なプログラミング言語で利用可能なラッパーやバインディングも提供されています。 gzipとは:
gzipは、ファイルを圧縮するためのフォーマットとコマンドラインユーティリティです。 gzip形式のファイルは、.gzという拡張子を持ちます。 gzipは、zlibライブラリを使用してデータを圧縮および解凍します。 zlibとgzipの互換性:
zlibとgzipは、データ圧縮アルゴリズムとして同じDEFLATEを共有しているため、相互に互換性があります。 これは、zlibで圧縮されたデータをgzipユーティリティで解凍し、逆も行えることを意味します。 ただし、ファイル形式には互換性がないため、gzip形式のファイルをzlibライブラリを直接使用して解凍することはできませんし、zlib形式のデータをgzipユーティリティで直接解凍することもできません。
Bzip2の圧縮アルゴリズムは、LZMAよりもメモリ効率が高く、データの圧縮・解凍にかかる時間が比較的長いことがありますが、非常に高い圧縮率を持ちます。
zipアーカイブとtarアーカイブがある。 Zipアーカイブ:
Zipは、WindowsやmacOSなどの多くのオペレーティングシステムで広くサポートされているアーカイブフォーマットです。 Zipアーカイブは、データ圧縮とアーカイブを同時に行います。つまり、ファイルやディレクトリを1つのファイルにまとめて、圧縮します。 Zipアーカイブは、複数のファイルやディレクトリを階層構造を保持して格納できます。 パスワード保護やコメントの追加などの機能も持っています。 主にWindows環境で一般的に使用されますが、他のプラットフォームでもサポートされています。 Tarアーカイブ:
Tar(Tape Archive)は、LinuxやUNIX系オペレーティングシステムでよく使用されるアーカイブフォーマットです。 Tarアーカイブは、ファイルやディレクトリをまとめてアーカイブするだけで、データの圧縮は行いません。通常、別途gzipやbzip2などの圧縮ツールを使って、Tarアーカイブを圧縮します。 Tarアーカイブは、ディレクトリの階層構造を保持しながらファイルをアーカイブします。 Tarアーカイブは、アーカイブ自体が圧縮されていないため、圧縮率はZipに比べて劣りますが、LinuxやUNIXのシステム管理、バックアップ、配布などでよく使用されます。
import hashlib でハッシュアルゴリズムインポートする h = hashlib.new(関数(アルゴリズム入力)) 各メソッドとして、ハッシュ化した後の処理を様々することができる
鍵の導出と引き延ばしを行うことができる
HMAC(Hash-based Message Authentication Code)は、データの完全性と認証を確保するための一方向ハッシュ関数を使用した認証手法
secretsモジュールは、機密情報を扱うために安全な乱数を生成するために設計されたモジュール
beautifulsoupは、HTMLやXMLなどのマークアップ言語を解析して、データを抽出したり操作したりすることができます。beautifulsoupでできることは、以下のようなものです。
ウェブスクレイピング:ウェブサイトから必要な情報を取得する。例えば、ニュースや商品の価格やレビューなどを収集する。 データクレンジング:マークアップ言語の不要なタグや属性を削除したり、整形したりする。例えば、HTMLのインデントやコメントを修正したり、XMLの名前空間を変更したりする。 データ変換:マークアップ言語の形式を変更する。例えば、HTMLをXMLやJSONに変換したり、テキストに変換したりする。
l18nとは、ソフトウェアやウェブサイトを複数の言語や地域に対応させることです。l18nのメリットは、ユーザーのニーズや文化に合わせた体験を提供し、市場の拡大や競争力の向上につながることです。l18nのプロセスは、以下のようなステップに分けられます。
要件定義:対象とする言語や地域、機能や品質の要件を明確にする。 設計:l18nに適したアーキテクチャやデザインを考える。例えば、文字コードや日付フォーマット、レイアウトや画像などを汎用化する。 実装:l18nに必要なコーディングやテストを行う。例えば、リソースファイルやライブラリを使って、テキストや画像などを外部化する。 ローカライズ(l10n):実際に言語や地域に応じてコンテンツや機能を変更する。例えば、翻訳や校正、カルチャライズなどを行う。 テスト:l18nやl10nの品質を確認する。例えば、機能や表示、パフォーマンスなどを検証する
【やること】 このスプレッドシートの推奨項目に関して、関数の定義や使用場面を把握してください。 各ライブラリのドキュメントを確認して、どのような機能が存在するか把握しましょう。全ての機能・メソッドの動作を完全に理解し、実行する必要はありません。 【参照するページ】 https://docs.python.org/ja/3/library/index.html