Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonでファイルを開くときにバッファサイズを指定するにはどうすればよいですか?


open --open(name [、mode [、buffering]])の関数定義を見ると、Python 2では3つの引数を取り、3つ目はバッファリング。オプションのbuffering引数は、ファイルの目的のバッファサイズを指定します。0はバッファなし、1は行バッファ、その他の正の値はそのサイズ(バイト単位)のバッファを使用することを意味します。負のバッファリングとは、システムのデフォルトを使用することを意味します。これは通常、ttyデバイスの場合はラインバッファリングされ、他のファイルの場合は完全にバッファリングされます。省略した場合、システムのデフォルトが使用されます。

たとえば、128バイトのバッファサイズのファイルを開く場合は、次のようにファイルを開くことができます-

>>> open('my_file', 'r+', 128)

Python 3では、openの関数定義は次のとおりです。open(file、mode ='r'、buffering =-1、encoding =None、errors =None、newline =None、closefd =True、opener =なし)。バッファリングは、バッファリングポリシーを設定するために使用されるオプションの整数です。バッファリングをオフに切り替えるには0を渡し(バイナリモードでのみ許可)、行バッファリングを選択するには1を渡し(テキストモードでのみ使用可能)、固定サイズのチャンクバッファのサイズをバイト単位で示すには整数>1を渡します。バッファリング引数が指定されていない場合、デフォルトのバッファリングポリシーは次のように機能します-

  • バイナリファイルは固定サイズのチャンクでバッファリングされます。バッファのサイズは、基盤となるデバイスの「ブロックサイズ」を決定し、io.DEFAULT_BUFFER_SIZEにフォールバックするヒューリスティックを使用して選択されます。

  • 「インタラクティブ」テキストファイル(isatty()がTrueを返すファイル)は、ラインバッファリングを使用します。他のテキストファイルは、バイナリファイルに対して上記のポリシーを使用します。

Python3の例はPython2と同じです。の場合 、128バイトのバッファサイズのファイルを開きたい場合は、次のようにファイルを開くことができます-

>>> open('my_file', 'r+', 128)

  1. 画像ファイルのサイズを小さくする方法

    以前、エクスプローラーの組み込みのメールオプションを使用するか、Windows用のImage Resizerと呼ばれるデスクトッププログラムを使用して、画像ファイルのサイズを縮小する方法についての記事を書きました。これらは良いオプションですが、画像を最適化する方法は他にもいくつかあります。また、多くのWebサイトでペイントを使用するように指示されていますが、画像の見栄えが非常に悪いため、ペイントは適切な方法ではないことがわかりました。 まず、画像のサイズを縮小するために使用されるいくつかの方法では、画像の品質が低下することを理解することが重要です。これは、Webサイトでは問題ない場合がありま

  2. tkinterファイルダイアログでファイルパスを指定するにはどうすればよいですか?

    Tkinterは、アプリケーションのコンポーネントとユーザーが操作可能なアイテムを構築するためのいくつかの組み込み関数とクラスライブラリメソッドを提供します。 ファイルダイアログ は、ファイル/ディレクトリ選択ウィンドウを作成するためのクラスとライブラリ関数を提供するtkinterモジュールの1つです。 ファイルダイアログを使用できます システムからファイルまたはディレクトリを参照するようにユーザーに依頼する必要がある場合。 特定のファイルを取得するディレクトリの場所を指定することもできます。特定の場所から始まるファイルダイアログを表示するには、 initialdir =を使用します 静的フ