tkutils プログラム仕様
ユーティリティ機能を提供するモジュール
このモジュールは、ファイル操作、データ変換、システム情報取得、エラーハンドリングなど、 様々な一般的なユーティリティ関数を提供します。 matplotlibやnumpyなどのライブラリに依存する機能も含まれます。
- tklib.tkutils.BuildCreationDateStr(date=None)[ソース]
指定された日付、または現在の日付から作成日文字列を生成します。
`date`がNoneの場合、現在の日時を使用して'YYYY/MM/DD'形式の文字列を生成します。
- パラメータ:
date (datetime.datetime or None) -- 作成日として使用する`datetime`オブジェクト (オプション)。
- 戻り値:
'YYYY/MM/DD'形式の日付文字列。
- 戻り値の型:
- tklib.tkutils.GetList(list, n, defval=0.0)[ソース]
リストを指定された長さに拡張または切り詰めます。
元のリストのコピーを作成し、`n`よりも短い場合は`defval`で拡張し、 `n`よりも長い場合は`n`で切り詰めます。
- tklib.tkutils.GetPathDelimiter()[ソース]
パス区切り文字を取得します。
`os.sep`を返します。これはOSによって'/'または''になります。
- 戻り値:
パス区切り文字。
- 戻り値の型:
- tklib.tkutils.SplitFilePath(path)[ソース]
ファイルパスを構成要素(ディレクトリ名、ファイル名、ファイル本体、拡張子)に分割します。
`split_file_path`関数のエイリアスです。
- tklib.tkutils.add_dict(var, key1, key2=None)[ソース]
辞書に要素を追加またはカウントをインクリメントします。
`key2`がNoneの場合、`var[key1]`の値を1インクリメントします。 `key2`が指定されている場合、`var[key1][key2]`の値を1インクリメントします。 キーが存在しない場合は初期値1で作成します。
- tklib.tkutils.add_path(path, varname='PATH')[ソース]
指定されたパスを環境変数に追加します。
`varname`で指定された環境変数(デフォルトは'PATH')に新しいパスを追加します。 パスが既に存在する場合は追加せず、現在の環境変数の値を返します。 新しいパスは既存のパスのリストの先頭に追加されます。
- tklib.tkutils.add_quotation(str, quotation, quotation_original)[ソース]
文字列に引用符を追加します。
`quotation`パラメータに基づいて、文字列に引用符を追加、削除、または維持します。 `quotation`が'remove'の場合は引用符を削除し、'keep'の場合は`quotation_original`で囲みます。 それ以外の場合は`quotation`で文字列を囲みます。
- tklib.tkutils.analyze_varstr(str)[ソース]
変数文字列を解析します。
内部関数`_analyze_varstr`を呼び出して変数文字列の解析を行います。 この関数は`tklib.tkobject`に定義されているプライベートな関数をラップしています。
- tklib.tkutils.check_attributes(obj, isprint=0, *args)[ソース]
オブジェクトに特定の属性が定義されているかチェックします。
`args`で指定された属性名が`obj`に存在するかを確認します。 存在しない属性名があればそのリストを返します。 `isprint`がTrueの場合、未定義の属性名をコンソールに出力します。
- tklib.tkutils.conv_float(val, format='{:.10g}')[ソース]
浮動小数点数を指定されたフォーマットで文字列に変換します。
`val`が浮動小数点数の場合、`format`文字列を使用して整形し、 それ以外の型の場合は元の値をそのまま返します。
- tklib.tkutils.convert_by_vars(s, vars, prefix='\\$', bra='\\(', ket='\\)')[ソース]
文字列内の変数プレースホルダを`vars`辞書の値に置換します。
文字列`s`の中から、指定された`prefix` (デフォルトは`$`) と bra/ket (デフォルトは`()` ) で囲まれた変数名 (例: $(varname)) を探し、 vars`辞書から対応する値を取得して置換します。 変数が見つからない場合は警告を出力し、??varname??`に置換します。 `$`のようなエスケープされたプレフィックスはそのままのプレフィックスに変換されます。
- tklib.tkutils.convert_color(color)[ソース]
色名を標準的なmatplotlibのCSS4_COLORS形式に変換します。
与えられた色名がmatplotlibのCSS4_COLORSに存在する場合、その標準的な表記を返します。 存在しない場合は、元の色名をそのまま返します。
- tklib.tkutils.copy_path(path, newpath)[ソース]
ファイルを新しい場所にコピーします。
`shutil.copy2()`を使用してファイルをコピーします。 シンボリックリンクは解決されます。
- tklib.tkutils.del_quote(s)[ソース]
文字列の先頭と末尾の引用符を削除します。
文字列が二重引用符または単一引用符で始まり、同じ引用符で終わる場合に、それらの引用符を削除します。 文字列が短い場合や引用符で囲まれていない場合は、元の文字列をそのまま返します。
- tklib.tkutils.desktop_name()[ソース]
現在のデスクトップ環境の名前を取得します。
Windowsの場合は'Windows'、macOSの場合は'Darwin'、 Linuxの場合は'XDG_CURRENT_DESKTOP'環境変数の値、 またはNoneを返します。
- 戻り値:
デスクトップ環境の名前、またはNone。
- 戻り値の型:
str or None
- tklib.tkutils.find_executable_path(filename, defval=None, filename_only=False)[ソース]
実行可能ファイルのフルパスをPATH環境変数から検索します。
PATH環境変数に設定されている各ディレクトリを検索し、 指定された`filename`に一致する実行可能ファイルを探します。 Windowsの場合、`PATHEXT`環境変数に含まれる拡張子も考慮します。
- tklib.tkutils.find_files(filename, start_dir=None)[ソース]
指定された開始ディレクトリ以下でファイルを検索します。
`os.walk()`を使用してディレクトリツリーを再帰的に走査し、 `fnmatch.fnmatch()`で`filename`パターンに一致するファイルのフルパスのリストを返します。 `start_dir`がNoneの場合、現在の作業ディレクトリから検索を開始します。
- tklib.tkutils.find_latest_file(filename, start_dir=None, defval=None)[ソース]
指定された開始ディレクトリ以下で最新の更新日時を持つファイルを検索します。
`find_files`関数で指定されたパターンに一致する全てのファイルを検索し、 その中で最終更新日時が最も新しいファイルのフルパスを返します。 ファイルが見つからない場合は`defval`を返します。
- tklib.tkutils.find_range_indexes(x, xmin, xmax)[ソース]
ソートされたリスト`x`内で、`xmin`から`xmax`の範囲に収まる要素のインデックス範囲を見つけます。
結果は、`x[ix0]`が`xmin`以上になる最初のインデックスと、 `x[ix1-1]`が`xmax`以下になる最後のインデックス(排他的)のタプルです。
- tklib.tkutils.format_strlist(vars, format, separator=', ')[ソース]
文字列のリストを指定されたフォーマットと区切り文字で結合します。
リストの各要素を`format`文字列で整形し、`separator`で結合した単一の文字列を返します。 要素がNoneの場合は"None"と出力されます。
- tklib.tkutils.get_PATH_env_separator()[ソース]
環境変数PATHの区切り文字を取得します。
`os.pathsep`を返します。これはOSによって':'または';'になります。
- 戻り値:
環境変数PATHの区切り文字。
- 戻り値の型:
- tklib.tkutils.get_definition_position(obj)[ソース]
オブジェクト(クラスまたはインスタンス)の定義位置を取得します。
指定されたオブジェクトがクラスでない場合は、そのクラスの定義位置を取得します。
- tklib.tkutils.get_dirname(path)[ソース]
指定されたパスのディレクトリ部分を取得します。
`os.path.abspath()`で絶対パスに変換後、`os.path.dirname()`でディレクトリ名を取得します。
- tklib.tkutils.get_ext_separator()[ソース]
ファイルの拡張子区切り文字を取得します。
`os.extsep`を返します。これは常に'.'になります。
- 戻り値:
拡張子区切り文字。
- 戻り値の型:
- tklib.tkutils.get_file_list(path, filemask='*.*', filename_only=True)[ソース]
指定されたパス内のファイルとディレクトリのリストを取得します。
`filemask`(セミコロンで区切られた複数のマスクも可)に一致するファイルとディレクトリを検索します。 `filename_only`がTrueの場合、ファイル名はベース名のみを返します。 ディレクトリは`[dirname]`の形式で返され、`[..]`が先頭に追加されます。
- tklib.tkutils.get_file_masks(key='executables')[ソース]
指定されたキーに対応するファイルマスクのリストを取得します。
`key`が'executables'の場合、Windows環境では`PATHEXT`環境変数から実行可能ファイルの拡張子リストを取得します。 それ以外のOSやキーでは、汎用的なファイルマスクを返します。
- tklib.tkutils.get_last_directory(path, check_dir=False)[ソース]
パスの最後のディレクトリ名を取得します。
`check_dir`がTrueでパスが実際にディレクトリである場合は、 そのディレクトリ名自体が返されます。 それ以外の場合は、パスのディレクトリ部分の最後のセグメントが返されます。
- tklib.tkutils.get_max_index(list, axis=0)[ソース]
リスト(またはNumPy配列)の最大値のインデックスを取得します。
NumPyの`arg_max`関数を使用しますが、これは`np.argmax`の間違いである可能性があり、 現在のコードではエラーになる可能性があります。
- tklib.tkutils.get_min_index(list, axis)[ソース]
リスト(またはNumPy配列)の最小値のインデックスを取得します。
NumPyの`arg_min`関数を使用しますが、これは`np.argmin`の間違いである可能性があり、 現在のコードではエラーになる可能性があります。
- tklib.tkutils.get_os()[ソース]
OSの名前(Windows, Darwin, Linuxなど)を取得します。
`platform.system()`の戻り値をそのまま返します。
- 戻り値:
OSの名前を表す文字列。
- 戻り値の型:
- tklib.tkutils.get_os_info(terse=False)[ソース]
OSの情報を取得します。
`platform`モジュールを使用して、OSのシステム名、プラットフォーム情報、 リリースバージョン、OSバージョンを返します。
- tklib.tkutils.get_path_list(varname='PATH')[ソース]
指定された環境変数からパスのリストを取得します。
デフォルトでは'PATH'環境変数の値を`os.pathsep`で分割し、リストとして返します。
- tklib.tkutils.get_path_separator()[ソース]
パス区切り文字を取得します。
`os.sep`を返します。これはOSによって'/'または''になります。 `GetPathDelimiter`のエイリアスです。
- 戻り値:
パス区切り文字。
- 戻り値の型:
- tklib.tkutils.get_position(self=None, _class=None)[ソース]
現在のコードのファイル名、関数名、行番号を取得します。
呼び出し元のフレーム情報を利用して、コードが実行されている位置に関する情報を辞書で返します。 `_class`が指定された場合はクラス名、`self`が指定された場合はインスタンスのクラス名も含まれます。
警告
この関数は、`line`変数を定義せずに使用しているため、常にエラーが発生します。
- tklib.tkutils.get_position_str(self=None, _class=None)[ソース]
現在のコードのファイル名、関数名、行番号を含む文字列を取得します。
呼び出し元のフレーム情報を利用して、コードが実行されている位置に関する情報を整形された文字列で返します。 `_class`が指定された場合はクラス名、`self`が指定された場合はインスタンスのクラス名も含まれます。
警告
この関数は、`line_number`変数を定義せずに使用しているため、常にエラーが発生します。
- tklib.tkutils.get_upper_directory(path)[ソース]
指定されたパスの上位ディレクトリ名を取得します。
`split_file_path`関数を使用してパスを解析し、親ディレクトリ部分を返します。
- tklib.tkutils.get_user_inifile_dir(env_vars=['HOME'], dir_names=['.'])[ソース]
ユーザーの設定ファイルディレクトリを取得または作成します。
`env_vars`に指定された環境変数(デフォルトは'HOME')を順番に検索し、 ユーザーのホームディレクトリを特定します。 次に`dir_names`に指定されたディレクトリ名(デフォルトは'.')を試行し、 既存のディレクトリを見つけるか、新しく作成してそのパスを返します。
- tklib.tkutils.getarg(position, defval=None)[ソース]
コマンドライン引数を位置指定で取得します。
`sys.argv`から指定された`position`の引数を取得します。 引数が存在しない場合は`defval`を返します。
- tklib.tkutils.graph_style_idx(idx)[ソース]
インデックスに基づいてグラフの色と線種を取得します。
与えられたインデックスを基に、定義済みの色と線種のリストから適切な組み合わせを選択して返します。
- tklib.tkutils.handle_exception(exc_type, exc_value, exc_tb)[ソース]
未処理の例外を処理し、エラー情報を表示します。
`sys.excepthook`に設定されることを意図しており、 例外の種類、値、トレースバックを整形して出力します。 最後にユーザーがEnterキーを押すまでプログラムの終了を一時停止します。
- パラメータ:
exc_type (type) -- 例外の型 (sys.exc_info()から取得)。
exc_value (Exception) -- 例外の値 (sys.exc_info()から取得)。
exc_tb (types.TracebackType) -- 例外のトレースバックオブジェクト (sys.exc_info()から取得)。
- tklib.tkutils.index2val(index, list_var, defval=(None, None))[ソース]
リストのインデックスまたは値から、対応するインデックスと値を取得します。
`index`が整数の場合は直接リストのインデックスとして使用します。 `index`が文字列で数値として解釈できる場合はインデックスとして使用します。 それ以外の場合、`index`がリストの要素値として存在するかを検索します。 見つからない場合は`defval`を返します。
- tklib.tkutils.is_float(s)[ソース]
文字列が浮動小数点数として解釈できるかを判定します。
引数`s`が既にfloat型であればTrueを返します。 文字列の場合は、浮動小数点数のパターンにマッチするかを正規表現で判定します。
- tklib.tkutils.is_int(s)[ソース]
文字列が整数として解釈できるかを判定します。
引数`s`が既にint型であればTrueを返します。 文字列の場合は、整数のパターンにマッチするかを正規表現で判定します。
- tklib.tkutils.is_linux()[ソース]
現在のOSがLinuxであるかを判定します。
Linuxの場合、OSのバージョン文字列を返します。 それ以外の場合はFalseを返します。
警告
元のコードでは`platform.systmem()`と誤字があり、実行時にエラーとなります。
- tklib.tkutils.is_mac()[ソース]
現在のOSがmacOSであるかを判定します。
macOS (Darwin) の場合、OSのバージョン文字列を返します。 それ以外の場合はFalseを返します。
警告
元のコードでは`platform.systmem()`と誤字があり、実行時にエラーとなります。
- tklib.tkutils.is_windows()[ソース]
現在のOSがWindowsであるかを判定します。
Windowsの場合、OSのバージョン文字列を返します。 それ以外の場合はFalseを返します。
- tklib.tkutils.kill_process_interactive(proc_name='', username='', pid='', print_level=1)[ソース]
対話形式でプロセスを終了させます。
指定されたプロセス名やユーザー名に一致するプロセスをリスト表示し、 ユーザーからのPID入力に基づいてプロセスを強制終了させます。 空のPIDを入力すると終了します。
- tklib.tkutils.merge_attributes(tobj, sobj)[ソース]
ソースオブジェクトの属性をターゲットオブジェクトにマージします。
sobj (ソースオブジェクト) の全ての属性を`tobj` (ターゲットオブジェクト) にコピーします。 ただし、`tobj`にすでに存在する属性は上書きされません。 `sobj`がNoneの場合は`tobj`をそのまま返します。
- tklib.tkutils.minmax_xy(x=None, y=None, x0=None, xstep=None, xmin=None, xmax=None)[ソース]
x-yデータまたは関数からy値の最小値と最大値を計算します。
`x0`がNoneの場合は、`x`と`y`のリストから`xmin`と`xmax`の範囲内の`y`の最小値と最大値を計算します。 `x0`が指定されている場合は、`x`が等間隔なデータであると仮定し、インデックス計算によって範囲を決定します。
- パラメータ:
- 戻り値:
y値の最小値と最大値のタプル。
- 戻り値の型:
- tklib.tkutils.modify_path(path, addpath)[ソース]
ファイルパスのファイル本体部分を修正します。
既存のパスのディレクトリ部分を維持しつつ、 ファイル本体名に`addpath`を結合した新しいパスを作成します。
- tklib.tkutils.mprint(*args, fp=None, **kwargs)[ソース]
標準出力とファイルオブジェクトの両方に印刷します。
`print`関数と同様に引数を受け取り、標準出力に表示するとともに、 `fp`で指定されたファイルオブジェクトにも出力し、すぐにフラッシュします。
- パラメータ:
args (Any) -- `print`関数に渡す位置引数。
fp (io.TextIOBase or None) -- 出力先のファイルオブジェクト (オプション)。
kwargs (Any) -- print`関数に渡すキーワード引数 (例: `sep, end)。
- tklib.tkutils.normalize_name(name, conv_table, unicodedata_mode='NFKC', upper_mode='upper')[ソース]
名前文字列を正規化します。
`normalize_str`関数を使用して空白文字や区切り文字を正規化し、 余分なスペースを削除した後、指定された`upper_mode`に基づいて大文字・小文字変換を行います。
- tklib.tkutils.normalize_str(str, conv_table=None, target_char=' ', unicodedata_mode='NFKC')[ソース]
文字列を正規化します。
指定された変換テーブル (conv_table) を使用して文字を置換し、 次に`unicodedata`モジュールで指定されたモード (unicodedata_mode) でUnicode正規化を行います。 デフォルトでは、全角スペース、タブ、改行、カンマなどの空白文字や区切り文字を 単一のスペースに変換します。
- パラメータ:
- 戻り値:
正規化された文字列、または元の文字列 (Noneの場合)。
- 戻り値の型:
str or None
- tklib.tkutils.pconv(s, defval=0, strict=True)[ソース]
文字列を自動的に整数、浮動小数点数、または元の文字列に変換します。
まず整数への変換を試み、次に浮動小数点数への変換を試みます。 どちらも失敗した場合は、元の文字列を返します。 `s`がNoneの場合は`defval`を返します。
- tklib.tkutils.pconv_by_type(s, type='str', defval=None, strict=False)[ソース]
文字列を指定された複数の型候補の中から、最初に適合する型に変換します。
`type`引数はパイプ`|`で区切られた型名の文字列、または型オブジェクトのリストとして指定できます。 変換が成功した時点でその値を返し、全ての型で失敗した場合は`defval`を返します。
- tklib.tkutils.pconv_by_type_one(s, type='str', defval=None, strict=False)[ソース]
文字列を指定された単一の型に変換します。
`strict`がTrueの場合、厳密な変換を試み、失敗した場合は`defval`を返します。 `strict`がFalseの場合は、`pint`や`pfloat`のような柔軟な変換関数を使用します。
- tklib.tkutils.pdb()[ソース]
Pythonデバッガ`pdb`のインタラクティブモードに入ります。
`pdb.set_trace()`を呼び出すことで、現在の実行コンテキストでデバッガを起動します。 デバッガの使用方法に関する基本的なヒントも表示されます。
- tklib.tkutils.pfloat(s, defval=0.0, strict=True)[ソース]
文字列を浮動小数点数に変換します。
まず文字列全体を浮動小数点数として変換を試みます。 `strict`がTrueで変換に失敗した場合、`defval`を返します。 `strict`がFalseで変換に失敗した場合、文字列内から数値パターンを検索し、 そのパターンが浮動小数点数として変換できればその値を返します。
- tklib.tkutils.pint(s, defval=0, strict=True)[ソース]
文字列を整数に変換します。
まず文字列全体を整数として変換を試みます。 `strict`がTrueで変換に失敗した場合、`defval`を返します。 `strict`がFalseで変換に失敗した場合、文字列内から数値パターンを検索し、 そのパターンが整数として変換できればその値を返します。
- tklib.tkutils.pintfloat(s, defval=0.0, strict=True)[ソース]
文字列を整数または浮動小数点数に変換します。
まず整数への変換を試み、失敗した場合は浮動小数点数への変換を試みます。 どちらも失敗した場合は`defval`を返します。
- tklib.tkutils.print_data(labels, data_list, label_format='{:^10}', data_format='{:>10}', header=None, nmax=None, print_level=0)[ソース]
データを表形式で整形して出力します。
ラベルとデータリストを受け取り、指定されたフォーマットでヘッダーとデータを表形式で出力します。 `nmax`が指定されている場合、表示する行数を制限するためにデータをスキップすることがあります。
- パラメータ:
labels (list[str] or list[list[str]]) -- 列のラベルのリスト。ネストされたリスト/タプルもサポート。
label_format (str) -- ラベルを整形するためのフォーマット文字列。
data_format (str) -- データ項目を整形するためのフォーマット文字列。
header (str or None) -- 表のヘッダーとして表示する文字列 (オプション)。
nmax (int or None) -- 表示するデータ行の最大数。これを超える場合はスキップして表示。
print_level (int) -- この引数は現在使用されていません。
- tklib.tkutils.print_line(data_list, format='{:^10}')[ソース]
データリストの要素を整形して1行で出力します。
各データ項目は指定された`format`で整形され、スペースなしで連結されて1行に出力されます。
- tklib.tkutils.print_position(self=None, _class=None, exc_type=None, exc_value=None, exc_tb=None)[ソース]
現在のコードの位置情報と、オプションで例外情報を出力します。
呼び出し元のフレーム情報を利用して、現在のファイル名、関数名、行番号を標準出力に出力します。 exc_type, exc_value, `exc_tb`が指定された場合は、詳細な例外情報も出力します。
- パラメータ:
self (object or None) -- メソッド内で呼び出す場合のインスタンス (オプション)。
_class (type or None) -- クラス内で呼び出す場合のクラス (オプション)。
exc_type (type or None) -- 例外の型 (sys.exc_info()から取得)。
exc_value (Exception or None) -- 例外の値 (sys.exc_info()から取得)。
exc_tb (types.TracebackType or None) -- 例外のトレースバックオブジェクト (sys.exc_info()から取得)。
- tklib.tkutils.print_process(proc_name='', username='', print_level=1)[ソース]
現在実行中のプロセス情報を表示し、辞書として返します。
指定されたプロセス名やユーザー名に一致するプロセスを検索し、その情報を標準出力に表示します。 各プロセスのPIDをキーとする辞書としてプロセス情報を返します。
- tklib.tkutils.quote_command_if_space(s, special_chars='', quote_blank=True)[ソース]
スペースや特殊文字が含まれる文字列を引用符で囲みます。
コマンドライン引数などで、スペースや指定された特殊文字を含む文字列を 適切に引用符で囲むことで、単一の引数として扱われるようにします。 すでに引用符で囲まれている場合や、特定のパターンに一致する場合は処理をスキップします。
- tklib.tkutils.raise_error(desc='custom error')[ソース]
カスタムエラーを発生させます。
指定された説明文で`CustomError`例外を発生させます。
- パラメータ:
desc (str) -- エラーの説明。
- 例外:
CustomError -- 指定された説明を持つカスタムエラー。
- tklib.tkutils.read_csv(path, delimiter=',', newline='', first_header=1, convert_float=0, convert_int=0)[ソース]
CSVファイルを読み込み、ヘッダーとデータのリストを返します。
CSVファイルを読み込み、`first_header`フラグに基づいて最初の行をヘッダーとして扱います。 残りのデータは行のリストとして返されます。 `convert_float`または`convert_int`フラグに応じて、数値データは自動的に変換されます。
- tklib.tkutils.read_csv2(fname, delimiter=',')[ソース]
CSVファイルを読み込み、最初の列をx軸、残りをy軸とする形式でデータを返します。
CSVファイルの1行目をヘッダーとして読み込み、最初のラベルを`xlabel`、 残りのラベルを`ylabels`として扱います。 各列のデータはそれぞれ`x`と`ylist`(yデータのリストのリスト)として取得し、 `pfloat`で浮動小数点数に変換します。
- tklib.tkutils.read_csv_to_dict(path, delimiter=',', print_level=1)[ソース]
CSVファイルを読み込み、列名をキーとする辞書形式でデータを返します。
CSVファイルの1行目をヘッダーとして読み込み、その列名をキーとする辞書を作成します。 各キーの値は、その列のデータをリストとして保持します。 データは`pconv`関数で自動的に型変換されます。
- tklib.tkutils.read_csv_to_dict_list(path, delimiter=',', newline='', convert_float=0, convert_int=0, print_level=1)[ソース]
CSVファイルを読み込み、行を要素とする辞書のリスト形式でデータを返します。
CSVファイルの各行を辞書として読み込み、その辞書のリストを作成します。 辞書のキーはCSVファイルのヘッダー行から取得されます。 `convert_float`または`convert_int`フラグに応じて、数値データは自動的に変換されます。
- パラメータ:
- 戻り値:
辞書のリスト。ファイル読み込み失敗時はNone。
- 戻り値の型:
- tklib.tkutils.remove_comments(line)[ソース]
文字列からコメント部分を削除します。
文字列リテラル内の'#'は保護し、それ以外の行末から'#'以降の部分をコメントとして削除します。
- tklib.tkutils.replace_path(path, template, ext_dict={})[ソース]
ファイルパスをテンプレート文字列に基づいてフォーマットします。
与えられたファイルパスを絶対パス、ディレクトリ名、ファイル名、ファイル本体、拡張子に分解し、 これらの情報を含む辞書を生成します。 この辞書と`ext_dict`を組み合わせて、`template`文字列をフォーマットします。
- tklib.tkutils.safe_getelement(var, key, defval=None)[ソース]
辞書やリストから指定されたキー/インデックスに対応する要素を安全に取得します。
指定された`var`から`key`に対応する要素を返します。 キーが存在しないなどのエラーが発生した場合は、`defval`を返します。
- tklib.tkutils.save_csv(path, headerlist, datalist, is_print=0)[ソース]
ヘッダーとデータリストをCSVファイルに保存します。
指定されたパスにCSVファイルを作成し、`headerlist`をヘッダーとして書き込みます。 `datalist`は列ごとのデータのリストのリストとして与えられ、行としてファイルに書き込まれます。 `is_print`がTrueの場合、書き込むデータをコンソールにも表示します。
- tklib.tkutils.search_executable_path(filenames, defval=None, filename_only=False)[ソース]
複数の実行可能ファイル名から、最初にPATH環境変数で見つかったファイルのフルパスを検索します。
`filenames`のリストを順番に`find_executable_path`で検索し、 最初に見つかった実行可能ファイルのパスを返します。
- tklib.tkutils.set_exception(func=<function handle_exception>, print_level=1)[ソース]
デフォルトの例外ハンドラを設定します。
`sys.excepthook`に指定された関数を設定し、未処理の例外が発生した際の挙動をカスタマイズします。 デフォルトでは`handle_exception`が設定されます。
- パラメータ:
func (callable) -- 例外ハンドラとして設定する関数。デフォルトは`handle_exception`。
print_level (int) -- 情報表示の詳細レベル。1の場合は設定情報を表示。
- tklib.tkutils.setenv(key, val=None)[ソース]
環境変数を設定または削除します。
`val`がNoneの場合、指定されたキーの環境変数を削除します。 それ以外の場合は、`val`で指定された値を環境変数に設定します。
- tklib.tkutils.sfmt(str, fmt)[ソース]
文字列を指定されたフォーマットで整形します。
Pythonのf-stringのようなフォーマット機能を使用して、 文字列を中央揃え、右揃えなどの指定された書式で整形します。
- tklib.tkutils.sort_lists(lists)[ソース]
複数のリストをまとめてソートします。
与えられたリストのリストを、最初のリストの要素を基準にソートし、 他のリストの要素もそれに合わせて並べ替えます。
- tklib.tkutils.split_command_line(s, quotation='remove')[ソース]
コマンドライン文字列をコマンドと引数リストに分割します。
与えられたコマンドライン文字列を、最初のトークンをコマンドとし、 残りの部分を引用符で囲まれた引数を考慮してリストに分割します。
- tklib.tkutils.split_drive(path)[ソース]
パスをドライブ名と残りのパスに分割します。
Windows環境ではドライブレター(例: 'C:')とその後のパスに分割します。 それ以外のOSでは、ドライブ名として空文字列を返し、元のパスをそのまま返します。
- tklib.tkutils.split_file_path(path, check_dir=False)[ソース]
ファイルパスを構成要素(ディレクトリ名、ファイル名、ファイル本体、拡張子)に分割します。
指定されたパスを、ディレクトリ名、ベース名(ファイル名+拡張子)、 ファイル本体(拡張子なしのファイル名)、拡張子に分割して返します。 Windows環境ではバックスラッシュをスラッシュに一時的に変換して処理します。 `check_dir`がTrueでパスがディレクトリの場合、特別な処理を行います。
- tklib.tkutils.split_optstr(str)[ソース]
オプション文字列を値とIDに分割します。
文字列が`val:id`の形式である場合、`:`で分割し、それぞれを浮動小数点数と整数に変換して返します。 分割できない場合は、元の文字列とNoneを返します。
- tklib.tkutils.split_quoted_args(s, sep='\\s+', quotation='remove')[ソース]
引用符で囲まれた引数を含む文字列を分割します。
スペースまたは指定された区切り文字で文字列を引数のリストに分割します。 二重引用符または単一引用符で囲まれた部分は単一の引数として扱われます。 `quotation`パラメータによって引用符の扱いは変更されます。
- tklib.tkutils.split_two(s, sep='\\s+', quotation='remove', defval='')[ソース]
文字列を最初の区切り文字で2つに分割します。
引用符で囲まれた部分を考慮して、文字列をコマンド部分と残りの部分に分割します。 分割できない場合は、元の文字列と`defval`を返します。 `quotation`パラメータによって引用符の扱いは変更されます。
- tklib.tkutils.str2val(s)[ソース]
文字列を対応するPythonの値(None, True, False, 数値)に変換します。
'None', 'True', 'False'という文字列はそれぞれのPythonのキーワードに変換されます。 それ以外の文字列は`pconv`関数で数値への変換を試みます。
- tklib.tkutils.terminate(message=None, usage=None, pause=False)[ソース]
メッセージを表示し、オプションで一時停止してからプログラムを終了します。
任意のメッセージと使用法メッセージを表示し、 `pause`がTrueの場合はユーザーがEnterキーを押すまで待ち、 その後`exit()`を呼び出してプログラムを終了します。
- tklib.tkutils.to_list(variable)[ソース]
様々な型の変数をリストに変換します。
NumPy配列、Pandas DataFrame、Pandas Series、既存のリストなどのオブジェクトを Pythonのリスト形式に変換して返します。
- tklib.tkutils.val2str(val)[ソース]
Pythonの値を文字列に変換します(None, True, Falseを特別な文字列に変換)。
None, True, FalseのPythonキーワードをそれぞれの文字列リテラルに変換します。 それ以外の値はそのまま返します。