tkfile プログラム仕様

ファイル操作を容易にするためのユーティリティ関数とクラスを提供します。

このモジュールは、ファイルの開閉、読み書き、シークなどの操作をオブジェクト指向で提供する tkFile クラスを含んでいます。また、ファイルのエンコーディングを自動判別する機能も 提供し、ファイル操作をより柔軟にします。

tkfile.py 技術ドキュメント

tklib.tkfile.get_encoding(path, defval='utf-8')[ソース]

指定されたファイルのエンコーディングを検出します。

chardetライブラリのUniversalDetectorを使用して、ファイルのエンコーディングを判別します。 特定のエンコーディング(SHIFT_JIS, Windows-1254)はCP932に変換されます。 ファイルが開けない場合やエンコーディングが判別できなかった場合は、Noneまたはデフォルト値を返します。

パラメータ:
  • path -- str, 検査するファイルのパス。

  • defval -- str, エンコーディングが判別できなかった場合のデフォルト値。

戻り値:

str or None, 検出されたエンコーディング、またはデフォルト値、またはNone(ファイルが開けない場合)。

tklib.tkfile.main(path)[ソース]

tkFile クラスの基本的な使用例を示すテスト関数です。

指定されたパスのファイルを`tkFile`で開閉し、ReadLineReadLines`ReadCharList`などのメソッドを使って内容を読み込み、標準出力に表示します。

パラメータ:

path -- str, テスト対象のファイルのパス。

戻り値:

None

tklib.tkfile.open_chardet(path=None, mode=None, encoding=None, def_encoding=None)[ソース]

エンコーディングを自動判別してファイルを開きます。

get_encoding を使用してファイルのエンコーディングを判別し、 そのエンコーディングでファイルを読み取りモードで開きます。 エンコーディングが判別できない場合は'shift_jis'を使用します。

パラメータ:
  • path -- str, 開くファイルのパス。

  • mode -- str, ファイルを開くモード(例: 'r', 'w')。

  • encoding -- str, 明示的に指定するエンコーディング。指定しない場合は自動判別されます。

  • def_encoding -- str, エンコーディングが判別できなかった場合のデフォルトエンコーディング。

戻り値:

file object, 開かれたファイルオブジェクト。

class tklib.tkfile.tkFile(path=None, mode='r', encoding='utf-8', OpenFile=True, IsPrint=True, **args)[ソース]

ベースクラス: tkObject

ファイル操作をオブジェクト指向で提供するクラスです。

tkObjectを継承し、ファイルの開閉、読み書き、シーク、エンコーディング判別などの 機能を提供します。ファイルの存在チェックやエラーハンドリングも行います。

Close()[ソース]

close メソッドのエイリアスです。

close メソッドと同じ機能を提供します。

戻り値:

None

CopyUntil(out, reg=None)[ソース]

指定された正規表現に一致するまでファイルをコピーします。

現在のファイルポインタから読み込みを開始し、各行を`out`ファイルオブジェクトに書き込みます。 正規表現`reg`に一致する行が見つかった場合、その行は書き込まずに処理を終了し、 マッチオブジェクトを返します。`reg`が`None`の場合は、全行をコピーします。

パラメータ:
  • out -- file object, 書き込み先のファイルオブジェクト。

  • reg -- str or None, 検索する正規表現パターン。Noneの場合、全行をコピーする。

戻り値:

re.Match object or None, 正規表現に一致した場合のマッチオブジェクト、またはEOFまで達した場合はNone。

DelCRLF(str)[ソース]

文字列末尾の改行文字 (CR/LF) を削除します。

正規表現を使用して、文字列の末尾にある一つ以上の改行文字(n または r)を削除します。

パラメータ:

str -- str, 処理対象の文字列。

戻り値:

str, 改行文字が削除された文字列。

DelLastSpace(str)[ソース]

文字列の末尾の空白文字を削除します。

str.rstrip() メソッドを呼び出し、文字列の末尾からすべての空白文字 (スペース、タブ、改行など)を削除します。

パラメータ:

str -- str, 処理対象の文字列。

戻り値:

str, 末尾の空白文字が削除された文字列。

DelSpace(str)[ソース]

文字列の先頭と末尾の空白文字を削除します。

str.strip() メソッドを呼び出し、文字列の先頭と末尾からすべての空白文字 (スペース、タブ、改行など)を削除します。

パラメータ:

str -- str, 処理対象の文字列。

戻り値:

str, 先頭と末尾の空白文字が削除された文字列。

DelTopSpace(str)[ソース]

文字列の先頭の空白文字を削除します。

str.lstrip() メソッドを呼び出し、文字列の先頭からすべての空白文字 (スペース、タブ、改行など)を削除します。

パラメータ:

str -- str, 処理対象の文字列。

戻り値:

str, 先頭の空白文字が削除された文字列。

Match(reg, str, flag='', defval=None)[ソース]

文字列の先頭から正規表現マッチングを行います。

tkre.Match を呼び出し、指定された正規表現が文字列の先頭に一致するかどうかを判定します。

パラメータ:
  • reg -- str, 正規表現パターン。

  • str -- str, 検索対象の文字列。

  • flag -- str, tkre.Match に渡すフラグ。

  • defval -- any, マッチしなかった場合に返すデフォルト値。

戻り値:

re.Match object or any, マッチした場合のマッチオブジェクト、または`defval`。

Open(path=None, mode=None, IsPrint=True, encoding=None)[ソース]

open メソッドのエイリアスです。

open メソッドと同じ機能を提供します。

パラメータ:
  • path -- str, 開くファイルのパス。

  • mode -- str, ファイルを開くモード。

  • IsPrint -- bool, エラーメッセージなどを出力するかどうかのフラグ。

  • encoding -- str, エンコーディング。

戻り値:

file object or None, 開かれたファイルオブジェクト、またはエラーの場合はNone。

Read()[ソース]

read メソッドのエイリアスです。

read メソッドと同じ機能を提供します。

戻り値:

str, ファイルの内容全体。

ReadBlock(end_regexp='^\\s*$')[ソース]

指定された終了正規表現に一致するまでファイルのブロックを読み込みます。

現在のファイルポインタから行を読み込み、指定された正規表現`end_regexp`に 一致する行が見つかるまで、それらの行をリストに格納します。 終了正規表現に一致した行は読み飛ばさず、ポインタは一致行の先頭に戻されます。

パラメータ:

end_regexp -- str, ブロックの終了を示す正規表現パターン。デフォルトは空行。

戻り値:

list of str, 読み込まれた行のリスト。

ReadCharList()[ソース]

ファイルの内容を文字のリストとして読み込みます。

ファイルの内容全体を読み込み、個々の文字からなるリストとして返します。

戻り値:

list of str or None, 文字のリスト、またはファイルが閉じている場合はNone。

ReadLine()[ソース]

readline メソッドのエイリアスです。

readline メソッドと同じ機能を提供します。

戻り値:

str or None, 読み込まれた1行、またはエラー/EOFの場合はNoneまたは空文字列。

ReadLineList()[ソース]

ファイルの全行をリストとして読み込みます。

開いているファイルポインタからすべての行を読み込み、行のリストとして返します。 各行には改行文字が含まれます。

戻り値:

list of str or None, ファイルの全行のリスト、またはファイルが閉じている場合はNone。

ReadLines()[ソース]

ファイルの全行を結合した文字列として読み込みます。

ファイルのすべての行を読み込み、それらを結合した単一の文字列として返します。

戻り値:

str or None, ファイルの全行を結合した文字列、またはファイルが閉じている場合はNone。

Rewind()[ソース]

rewind メソッドのエイリアスです。

rewind メソッドと同じ機能を提供します。

戻り値:

None

Search(reg, str, flag='', defval=None)[ソース]

文字列内で正規表現検索を行います。

tkre.Search を呼び出し、指定された正規表現が文字列内のどこかに一致するかどうかを判定します。

パラメータ:
  • reg -- str, 正規表現パターン。

  • str -- str, 検索対象の文字列。

  • flag -- str, tkre.Search に渡すフラグ。

  • defval -- any, 検索でヒットしなかった場合に返すデフォルト値。

戻り値:

re.Match object or any, 検索でヒットした場合のマッチオブジェクト、または`defval`。

SearchTo(pattern, origin=None, defval=None, max_lines=-1)[ソース]

search_to メソッドのエイリアスです。

search_to メソッドと同じ機能を提供します。

パラメータ:
  • pattern -- str, 検索する正規表現パターン。

  • origin -- int or None, 検索を開始するファイルポインタのオフセット。

  • defval -- any, パターンが見つからなかった場合に返すデフォルト値。

  • max_lines -- int, 検索する最大行数。

戻り値:

re.Match object or list or None, パターンに一致した場合のマッチオブジェクト、 defval`が指定されている場合は`[line, defval]、それ以外で何も見つからなかった場合はNone。

Seek(offset, whence=0)[ソース]

seek メソッドのエイリアスです。

seek メソッドと同じ機能を提供します。

パラメータ:
  • offset -- int, 移動するバイト数。

  • whence -- int, オフセットの基準(os.SEEK_SET, os.SEEK_CUR, os.SEEK_END)。

戻り値:

None

SetPath(path=None, mode=None)[ソース]

ファイルのパスとモードを設定します。

path または modeNone でない場合、現在のインスタンスの属性を更新します。

パラメータ:
  • path -- str, 設定するファイルのパス。

  • mode -- str, 設定するファイルモード。

戻り値:

None

SkipTo(pattern, origin=None, re_flag=None, max_lines=-1)[ソース]

skip_to メソッドのエイリアスです。

skip_to メソッドと同じ機能を提供します。

パラメータ:
  • pattern -- str, 検索する正規表現パターン。

  • origin -- int or None, 検索を開始するファイルポインタのオフセット。

  • re_flag -- int or None, reモジュールに渡すフラグ。

  • max_lines -- int, 検索する最大行数。

戻り値:

str or None, パターンに一致した行(改行なし)、または見つからなかった場合はNone。

Split(reg, str)[ソース]

正規表現で文字列を分割します。

tkre.Split を呼び出し、指定された正規表現パターンで文字列を分割します。

パラメータ:
  • reg -- str, 正規表現パターン。

  • str -- str, 分割対象の文字列。

戻り値:

list of str, 分割された文字列のリスト。

Sub(reg, target, str, n=0)[ソース]

正規表現に一致する部分文字列を置換します。

tkre.Sub を呼び出し、指定された正規表現パターンに一致する文字列の部分を `target`で置換します。

パラメータ:
  • reg -- str, 検索する正規表現パターン。

  • target -- str, 置換後の文字列。

  • str -- str, 置換対象の文字列。

  • n -- int, 置換する最大回数。0の場合、すべて置換。

戻り値:

str, 置換後の文字列。

SubN(reg, target, str, n=0)[ソース]

正規表現に一致する部分文字列をn回置換します。

tkre.SubN を呼び出し、指定された正規表現パターンに一致する文字列の部分を `target`で最大`n`回置換します。

パラメータ:
  • reg -- str, 検索する正規表現パターン。

  • target -- str, 置換後の文字列。

  • str -- str, 置換対象の文字列。

  • n -- int, 置換する最大回数。

戻り値:

str, 置換後の文字列。

Tell()[ソース]

tell メソッドのエイリアスです。

tell メソッドと同じ機能を提供します。

戻り値:

int, 現在のファイルポインタの位置。

Write(s)[ソース]

write メソッドのエイリアスです。

write メソッドと同じ機能を提供します。

パラメータ:

s -- str, 書き込む文字列。

戻り値:

bool, 書き込みが成功した場合はTrue、ファイルが開かれていない場合はFalse。

WriteLines(lines)[ソース]

write_lines メソッドのエイリアスです。

write_lines メソッドと同じ機能を提供します。

パラメータ:

lines -- list of str, 書き込む行のリスト。

戻り値:

bool, 全ての行の書き込みが成功した場合はTrue、途中で失敗した場合はFalse。

close()[ソース]

開いているファイルを閉じます。

self.fpNone でない場合、ファイルを閉じ、self.fpNone に設定します。

戻り値:

None

eof()[ソース]

ファイルの終端 (EOF) に達したかどうかを判定します。

現在のファイルポインタがファイルの終端にあるかをチェックします。

戻り値:

bool, ファイルの終端に達していればTrue、そうでなければFalse。ファイルが開かれていない場合はTrue。

open(path=None, mode=None, IsPrint=True, encoding=None)[ソース]

ファイルを開きます。

指定されたパスとモードでファイルを開きます。ファイルが存在しない場合や開けない場合は エラーメッセージを出力し、Noneを返します。エンコーディングが指定されていない場合は、 chardetを使用して自動判別を試みます。

パラメータ:
  • path -- str, 開くファイルのパス。Noneの場合、インスタンスのpath属性を使用。

  • mode -- str, ファイルを開くモード(例: 'r', 'w')。Noneの場合、'r'を使用。

  • IsPrint -- bool, エラーメッセージなどを出力するかどうかのフラグ。

  • encoding -- str, 明示的に指定するエンコーディング。Noneの場合、自動判別を試みるか、'utf-8'を使用。

戻り値:

file object or None, 開かれたファイルオブジェクト、またはエラーの場合はNone。

read()[ソース]

ファイルの内容全体を読み込みます。

開いているファイルポインタからファイルの内容全体を文字列として読み込み、返します。

戻り値:

str, ファイルの内容全体。

readline()[ソース]

ファイルから1行読み込みます。

開いているファイルポインタから1行を読み込み、文字列として返します。 ファイルが閉じている場合や読み込みエラーが発生した場合はNoneまたは空文字列を返します。

戻り値:

str or None, 読み込まれた1行、またはエラー/EOFの場合はNoneまたは空文字列。

rewind()[ソース]

ファイルポインタをファイルの先頭に戻します。

seek(0) を呼び出し、ファイルポインタをファイルの開始位置に設定します。

戻り値:

None

search_to(pattern, origin=None, defval=None, max_lines=-1)[ソース]

指定されたパターンに一致する行を検索し、マッチオブジェクトを返します。

現在のファイルポインタから読み込みを開始し、指定された正規表現`pattern`に 一致する行が見つかるまで行を読み込みます。tkre.Search を使用して検索を行い、 マッチオブジェクトを返します。オプションで、検索開始位置を指定したり、 検索する最大行数を制限したりできます。

パラメータ:
  • pattern -- str, 検索する正規表現パターン。

  • origin -- int or None, 検索を開始するファイルポインタのオフセット。Noneの場合、現在の位置から開始。

  • defval -- any, パターンが見つからなかった場合に返すデフォルト値。

  • max_lines -- int, 検索する最大行数。-1の場合、制限なし。

戻り値:

re.Match object or list or None, パターンに一致した場合のマッチオブジェクト、 defval`が指定されている場合は`[line, defval]、それ以外で何も見つからなかった場合はNone。

seek(offset, whence=0)[ソース]

ファイルポインタの位置を変更します。

指定されたオフセットと基準に基づいてファイルポインタを移動します。

パラメータ:
  • offset -- int, 移動するバイト数。

  • whence -- int, オフセットの基準(os.SEEK_SET, os.SEEK_CUR, os.SEEK_END)。デフォルトはos.SEEK_SET。

戻り値:

None

shSplit(reg, str)[ソース]

シェルのようなルールで正規表現で文字列を分割します。

tkre.shSplit を呼び出し、シェルの引数分割に似たロジックで正規表現パターンで文字列を分割します。

パラメータ:
  • reg -- str, 正規表現パターン。

  • str -- str, 分割対象の文字列。

戻り値:

list of str, 分割された文字列のリスト。

skip_to(pattern, origin=None, re_flag=None, max_lines=-1)[ソース]

指定されたパターンに一致する行までファイルをスキップします。

現在のファイルポインタから読み込みを開始し、指定された正規表現`pattern`に 一致する行が見つかるまで行を読み飛ばします。一致した行の内容を返します。 オプションで、検索開始位置を指定したり、検索する最大行数を制限したりできます。

パラメータ:
  • pattern -- str, 検索する正規表現パターン。

  • origin -- int or None, 検索を開始するファイルポインタのオフセット。Noneの場合、現在の位置から開始。

  • re_flag -- int or None, reモジュールに渡すフラグ(例: re.IGNORECASE)。Noneの場合、re.IGNORECASEを使用。

  • max_lines -- int, 検索する最大行数。-1の場合、制限なし。

戻り値:

str or None, パターンに一致した行(改行なし)、または見つからなかった場合はNone。

tell()[ソース]

現在のファイルポインタの位置を返します。

ファイルポインタの現在位置(バイト数)を返します。

戻り値:

int, 現在のファイルポインタの位置。ファイルが開かれていない場合は0。

write(s)[ソース]

文字列をファイルに書き込みます。

開いているファイルポインタに指定された文字列を書き込みます。

パラメータ:

s -- str, 書き込む文字列。

戻り値:

bool, 書き込みが成功した場合はTrue、ファイルが開かれていない場合はFalse。

write_lines(lines)[ソース]

行のリストをファイルに書き込みます。

指定された文字列のリストをファイルに1行ずつ書き込みます。

パラメータ:

lines -- list of str, 書き込む行のリスト。

戻り値:

bool, 全ての行の書き込みが成功した場合はTrue、途中で失敗した場合はFalse。