Pythonシリーズのチュートリアル122

友人の皆さん、転載が必要な場合は、出典をお知らせください:blog.csdn.net/jiangjunsho…

免責事項:人工知能技術の指導中に、多くの学生がPython関連の質問をしてきました。そのため、学生にAI技術の知識を深め、理解を深めてもらうために、この一連のPythonチュートリアルを共有するようアシスタントに依頼しました。 。私は皆を助けることができることを願っています!このPythonチュートリアルは私が作成したものではないため、AIテクノロジーの指導ほど面白くなく、ユーモラスではなく、学ぶのは退屈ですが、知識のポイントはまだ残っており、読む価値もあります。PS:この記事を理解していない学生は、最初に前の記事を読んでください。そうすれば、毎日少しずつ学ぶのは難しくありません。

Python3.0およびPython2.6では、ファイルタイプはopenの2番目のパラメータによって決定されます。これはパターン文字列と呼ぶことができます。文字列に「b」が含まれている場合は、ファイルがバイナリ形式で開かれていることを意味します。テキスト形式で。

Pythonは常にテキストファイルとバイナリファイルをサポートしてきましたが、Python 3.0では、2つの間に明確な違いがあります。•テキストファイルは、コンテンツを通常のstr文字列として表し、自動Unicodeエンコードとデコードを実行し、デフォルトで最後の行を実行します。•バイナリファイルは、コンテンツを特殊なタイプのバイト文字列として表し、プログラムが変更せずにファイルのコンテンツにアクセスできるようにします。

Python 3.0の違いは、国際化されたアプリケーションやバイト指向のデータを処理する必要がある場合にコードに影響します。通常、バイナリファイルにはbytes文字列を使用し、テキストファイルには通常のstr文字列を使用する必要があります。また、テキストファイルはUnicodeエンコーディングを実装しているため、バイナリデータファイルをテキストモードで開くことはできません。そうしないと、その内容をUnicodeテキストにデコードできなくなる可能性があります。

例を見てみましょう。バイナリデータファイルを読み取ると、bytesオブジェクトが取得されます。

>>> data = open('data.bin','rb').read()       # Open binary file: rb=read binary

>>> data              # bytes string holds binary data

b'\x00\x00\x00\x07spam\x00\x08'

>>> data[4:8]             # Act like strings

b'spam'

>>> data[0]      # But really are small 8-bit integers

115

>>> bin(data[0])         # Python 3.0 bin() function

'0b1110011'
复制代码

また、バイナリファイルはデータに対して行末変換を実行しません。したがって、ファイルの読み取りと書き込みを行うときは、テキスト形式とバイナリ形式のどちらを使用するかを区別する必要があります。テキスト形式で書かれたファイルもテキスト形式で読み取られます。バイナリ形式で記述されたファイルは、バイナリ形式で読み取る必要があります。

おすすめ

転載: juejin.im/post/7025499800007081991