tkinifile プログラム仕様

INIファイル操作のためのユーティリティクラスを提供します。

このモジュールは、INIファイル形式のデータを読み書きするための tkIniFile クラスを定義しています。 セクションやキー/値ペアの検索、追加、更新、削除などの機能を提供し、 既存のINIファイルの操作や新しいファイルの作成をサポートします。

tkinifile.py Technical Documentation

tklib.tkinifile.main()[ソース]

tkinifileモジュールの基本的な使用例を示すメイン関数です。

tkIniFile クラスのインスタンス化、ファイルの読み込み、 特定のキーの値の取得、セクション全体の取得、および値の書き込みのデモンストレーションを行います。

class tklib.tkinifile.tkIniFile(path=None, mode='r', OpenFile=1, IsPrint=True, **args)[ソース]

ベースクラス: tkFile

INIファイルを読み書きするためのクラスです。

tkFileクラスを継承し、INIファイル特有のセクションやキーの操作機能を提供します。 ファイルパスの管理、オープン/クローズ、行単位の読み書きなどの基本機能に加えて、 INIファイルの構造(セクション、キー、値)に基づいた高度な操作が可能です。

FindKeyFromSectionRange(i0, i1, key, lines=None)[ソース]

指定されたセクション範囲内で、特定のキーの行インデックスを検索します。

INIファイルのセクション内の特定のキーを検索し、そのキーが存在する行のインデックスを返します。

パラメータ:
  • i0 (int) -- 検索範囲の開始インデックス(セクションの開始)。

  • i1 (int) -- 検索範囲の終了インデックス(セクションの終了)。

  • key (str) -- 検索するキー名。

  • lines (list[str], optional) -- 検索対象の行リスト。省略した場合、self.lines を使用します。

戻り値:

キーが見つかった行のインデックス。見つからない場合はNone。

戻り値の型:

int or None

FindLastNonBlankLine(lines=None)[ソース]

指定された行リスト内で、最後の空白ではない行のインデックスを検索します。

ファイルに内容がある場合、ファイルの末尾から逆順に検索し、 空白ではない行(空白文字以外の文字を含む行)のインデックスを返します。

パラメータ:

lines (list[str], optional) -- 検索対象の行リスト。省略した場合、self.lines を使用します。

戻り値:

最後の空白ではない行のインデックス。ファイルが完全に空白である場合は0。

戻り値の型:

int

FindSectionFromStr(section, lines=None)[ソース]

指定された行リスト内で、特定のセクションの開始、挿入、終了インデックスを検索します。

セクションが見つかった場合、そのセクションの開始行インデックス (i0)、 新しいキーを挿入するのに適したインデックス (iins)、およびセクションの最終行インデックス (i1) を返します。 挿入ポイント (iins) は、セクション内の最後の空白ではない行の次です。

パラメータ:
  • section (str) -- 検索するセクション名。

  • lines (list[str], optional) -- 検索対象の行リスト。省略した場合、self.lines を使用します。

戻り値:

タプル (セクション開始インデックス, 挿入ポイントインデックス, セクション終了インデックス)。 セクションが見つからない場合は (None, None, None)。

戻り値の型:

tuple[int or None, int or None, int or None]

GetNextSection()[ソース]

現在のファイルポインタ位置から次のセクションを読み込みます。

ファイルの先頭から順に次のセクションヘッダを検索し、そのセクション名と そのセクションに属する行のリストを返します。 ファイルポインタは次のセクションの開始位置、またはファイルの終端に移動します。

戻り値:

タプル (セクション名, セクションの行リスト)。ファイルの終端に達した場合は ('', [])。

戻り値の型:

tuple[str, list[str]]

GetSection(section)[ソース]

INIファイルから指定されたセクションのすべての行を取得します。

指定されたセクションヘッダを検索し、次のセクションヘッダまたはファイルの終端までの行をリストで返します。 セクションのタイトル行は含まれません。

パラメータ:

section (str) -- 取得するセクション名。

戻り値:

セクション内の行のリスト。セクションが見つからない場合は空の文字列を返します。 セクションが見つかったがその内容が空の場合も空のリストを返すことがあります。

戻り値の型:

list[str] or str

GetString(section=None, key=None, defstr=None, IsPrint=False)[ソース]

INIファイルから文字列値を取得します(get_stringのエイリアス)。

このメソッドは get_string メソッドのラッパーです。 defstr パラメータは def_val として、IsPrint パラメータは is_print として get_string に渡されます。

パラメータ:
  • section (str, optional) -- 値を取得するセクション名。キーのみ指定する場合はNone。

  • key (str, optional) -- 取得するキー名。セクション全体を取得する場合はNone。

  • defstr (str, optional) -- キーが見つからなかった場合に返すデフォルト値。

  • IsPrint (bool, optional) -- デバッグ情報を出力するかどうかのフラグ。デフォルトはFalse。

戻り値:

取得された文字列値、またはデフォルト値。

戻り値の型:

str or list[str] or None

ReadAll(path=None, AddSection=0, ignore_keys=[], IsPrint=False, encoding=None)[ソース]

INIファイルからすべてのキーと値を読み込みます(read_allのエイリアス)。

このメソッドは read_all メソッドのラッパーです。 AddSection パラメータは、内部的にbool型に変換されて read_all に渡されます。

パラメータ:
  • path (str, optional) -- 読み込むINIファイルのパス。省略した場合、現在のファイルパスを使用します。

  • AddSection (int, optional) -- 返される辞書のキーにセクション名を含めるかどうか。1の場合、「セクション名/キー」の形式になります。

  • ignore_keys (list[str]) -- 読み込み時に無視するキーのリスト。

  • IsPrint (bool, optional) -- デバッグ情報を出力するかどうかのフラグ。デフォルトはFalse。

  • encoding (str, optional) -- ファイルのエンコーディング。デフォルトはNone(chardetで自動判定)。

戻り値:

INIファイルから読み込まれたキーと値の辞書。

戻り値の型:

dict

WriteString(section, key, value, outfile=None, IsPrint=False)[ソース]

INIファイルにキーと値を書き込みます(write_stringのエイリアス)。

このメソッドは write_string メソッドのラッパーです。 IsPrint パラメータは、内部的に is_print として write_string に渡されます。

パラメータ:
  • section (str) -- 値を書き込むセクション名。

  • key (str) -- 書き込むキー名。

  • value (any) -- 書き込む値。

  • outfile (str, optional) -- 書き込み先のINIファイルパス。省略した場合、現在のファイルパスを使用します。

  • IsPrint (bool, optional) -- デバッグ情報を出力するかどうかのフラグ。デフォルトはFalse。

戻り値:

書き込みが成功した場合はTrue、失敗した場合はFalse。

戻り値の型:

bool

get_string(section=None, key=None, def_val=None, is_print=False)[ソース]

INIファイルから指定されたセクションとキーの文字列値を取得します。

sectionkey の組み合わせによって、ファイル全体、特定のセクション、または特定のキーの値を読み込みます。 ファイルが開かれていない場合は、読み込みモードでファイルを開きます。

パラメータ:
  • section (str, optional) -- 値を取得するセクション名。キーのみ指定する場合はNone。

  • key (str, optional) -- 取得するキー名。セクション全体を取得する場合はNone。

  • def_val (str, optional) -- キーが見つからなかった場合に返すデフォルト値。

  • is_print (bool, optional) -- デバッグ情報を出力するかどうかのフラグ。デフォルトはFalse。

戻り値:

取得された文字列値、またはデフォルト値。 section のみが指定された場合、そのセクションの行リストが返されます。 sectionkey も指定されない場合、ファイル全体の行リストが返されます。 キーが見つからなかった場合、def_val が返されます。ファイルが開けない場合は def_val

戻り値の型:

str or list[str] or None

read_all(path=None, section=None, AddSection=False, ignore_keys=[], IsPrint=False, encoding=None)[ソース]

INIファイルからすべてのキーと値を読み込みます。

特定のセクションのみを読み込むことも、返される辞書のキーにセクション名を含めることも可能です。 ファイルが開かれていない場合は読み込みモードでファイルを開きます。

パラメータ:
  • path (str, optional) -- 読み込むINIファイルのパス。省略した場合、現在のファイルパスを使用します。

  • section (str, optional) -- 読み込む対象のセクション名。指定した場合、そのセクション内のキーのみを返します。

  • AddSection (bool, optional) -- 返される辞書のキーにセクション名を含めるかどうか。Trueの場合、「セクション名/キー」の形式になります。

  • ignore_keys (list[str]) -- 読み込み時に無視するキーのリスト。

  • IsPrint (bool, optional) -- デバッグ情報を出力するかどうかのフラグ。デフォルトはFalse。

  • encoding (str, optional) -- ファイルのエンコーディング。デフォルトはNone(chardetで自動判定)。

戻り値:

INIファイルから読み込まれたキーと値の辞書。ファイルが開けない場合はNone。

戻り値の型:

dict or None

var = {}
write_from_scratch(outfile, section, **kwargs)[ソース]

新しいINIファイルをゼロから作成し、指定されたセクションとキー/値を書き込みます。

outfile で指定されたファイルが存在する場合、その内容は上書きされます。 指定されたセクションと、キーワード引数で与えられたキー/値ペアが書き込まれます。

パラメータ:
  • outfile (str) -- 書き込み先のINIファイルパス。

  • section (str) -- 書き込むセクション名。

  • kwargs (dict) -- セクション内に書き込むキーと値のペア。値は conv_float で変換されます。

戻り値:

書き込みが成功した場合はTrue、失敗した場合はFalse。

戻り値の型:

bool

write_string(section, key, value, outfile=None, is_print=False)[ソース]

INIファイル内の指定されたセクションにキーと値を書き込みます。

指定された outfile が存在しない場合は作成し、存在する場合は内容を読み込み、 セクションまたはキーが存在しない場合、それらは追加されます。 既存のキーは上書きされます。

パラメータ:
  • section (str) -- 値を書き込むセクション名。

  • key (str) -- 書き込むキー名。

  • value (any) -- 書き込む値。必要に応じて conv_float でfloatに変換されます。

  • outfile (str, optional) -- 書き込み先のINIファイルパス。省略した場合、現在のファイルパスを使用します。

  • is_print (bool, optional) -- デバッグ情報を出力するかどうかのフラグ。デフォルトはFalse。

戻り値:

書き込みが成功した場合はTrue、失敗した場合はFalse。

戻り値の型:

bool