msvcrt — MS VC ++ランタイムの便利なルーチン
これらの関数は、Windowsプラットフォームのいくつかの便利な機能へのアクセスを提供します。 一部の高レベルモジュールは、これらの関数を使用して、サービスのWindows実装を構築します。 たとえば、 getpass モジュールは、 getpass()関数の実装でこれを使用します。
これらの関数の詳細については、PlatformAPIのドキュメントをご覧ください。
このモジュールは、コンソールI / OAPIの通常の文字とワイド文字の両方のバリアントを実装します。 通常のAPIはASCII文字のみを扱い、国際化されたアプリケーションでの使用は制限されています。 可能な限り、ワイド文字APIを使用する必要があります。
ファイル操作
- msvcrt.locking(fd, mode, nbytes)
- Cランタイムのファイル記述子 fd に基づいてファイルの一部をロックします。 失敗すると OSError が発生します。 ファイルのロックされた領域は、現在のファイル位置から nbytes バイトまで拡張され、ファイルの終わりを超えて続く場合があります。 mode は、以下にリストされている
LK_*
定数のいずれかである必要があります。 ファイル内の複数の領域を同時にロックすることはできますが、重複することはできません。 隣接するリージョンはマージされません。 個別にロックを解除する必要があります。
- msvcrt.LK_LOCK
msvcrt.LK_RLCK
- 指定されたバイトをロックします。 バイトをロックできない場合、プログラムは1秒後にすぐに再試行します。 10回試行してもバイトをロックできない場合は、 OSError が発生します。
- msvcrt.LK_NBLCK
msvcrt.LK_NBRLCK
- 指定されたバイトをロックします。 バイトをロックできない場合、 OSError が発生します。
- msvcrt.LK_UNLCK
- 以前にロックされている必要がある指定されたバイトのロックを解除します。
- msvcrt.setmode(fd, flags)
- ファイル記述子 fd の行末変換モードを設定します。 テキストモードに設定するには、フラグを os.O_TEXT にする必要があります。 バイナリの場合は、 os.O_BINARY である必要があります。
- msvcrt.open_osfhandle(handle, flags)
- ファイルハンドルハンドルからCランタイムファイル記述子を作成します。 flags パラメーターは、 os.O_APPEND 、 os.O_RDONLY 、および os.O_TEXT のビットごとのORである必要があります。 返されたファイル記述子は、 os.fdopen()のパラメーターとして使用して、ファイルオブジェクトを作成できます。
- msvcrt.get_osfhandle(fd)
- ファイル記述子 fd のファイルハンドルを返します。 fd が認識されない場合、 OSError を発生させます。
コンソールI / O
- msvcrt.kbhit()
- キー押下が読み取られるのを待っている場合は、
True
を返します。
- msvcrt.getch()
- キー押下を読み取り、結果の文字をバイト文字列として返します。 コンソールには何もエコーされません。 この呼び出しは、キーを押すことがまだ利用できない場合はブロックされますが、 Enter が押されるのを待ちません。 押されたキーが特別なファンクションキーであった場合、これは
'\000'
または'\xe0'
を返します。 次の呼び出しはキーコードを返します。 Control-C キー押下は、この機能では読み取ることができません。
- msvcrt.getwch()
- getch()のワイド文字バリアント。Unicode値を返します。
- msvcrt.getche()
- getch()に似ていますが、印刷可能な文字を表す場合、キー押下がエコーされます。
- msvcrt.getwche()
- getche()のワイド文字バリアント。Unicode値を返します。
- msvcrt.putch(char)
- バイト文字列 char をバッファリングせずにコンソールに出力します。
- msvcrt.putwch(unicode_char)
- Unicode値を受け入れる putch()のワイド文字バリアント。
- msvcrt.ungetwch(unicode_char)
- ungetch()のワイド文字バリアントで、Unicode値を受け入れます。