Pythonでの「r」、「r +」、「w」、「w +」、「a」、「a +」の違いの概要



Summary Differences Between R



'r'(読み取り): 読み取り専用。 既存のファイルを開く必要があります 、および読み取り操作のみを実行できます。

'r +': 読み取り+書き込み。 'r'に似ています 既存のファイルを開く必要があります 。読み取りと書き込みは特定の順序ではありません(つまり、いつでも読み取りまたは書き込みが可能です)
注(1):「r +」で書き込んだ内容はファイルの末尾に追加され、複数回実行しても同じ内容が複数回書き込まれることはありません。
たとえば、次のコードセグメントを複数回実行した場合、ファイルは「helloworld」を複数回書き込みません。
画像
画像
複数回書き込みたい場合は、loopを使用できます。
画像
画像
注(2): ファイルの書き込み後に書き込まれたコンテンツを読み取りたい場合は、コードfile.seek(0)を追加する必要があります。そうしないと、空の文字列が返されます(ファイルはフォルダー名を参照します)。 w +、a +モードでも同じ
理由:コンテンツが書き込まれた後、カーソルは自動的にコンテンツの最後に移動します。このとき、直接読み取ると空の文字列が返されます。ただし、file.seek(0)を使用すると、カーソルが先頭に移動し、コンテンツを正しく読み取ることができます。
画像
画像
注(3):「r +」モードで書き込む前に、readを直接使用してファイルの内容を読み取ることができます(カーソルが先頭にあるため)。ただし、ファイルを追加モードで開いたときにカーソルが最後にあるため、「a +」モードで書き込む前にフォルダの内容を読み取ることはできません(ファイルが存在し、内容が含まれている場合でも)。



'w'(書き込み): 書くだけ。 既存のファイルを開く場合は、ファイルの元のコンテンツをクリアします 新しいコンテンツを書くため。 開いているファイルが存在しない場合、開くファイルは現在の.pyフォルダーに自動的に作成されます。 、そして新しいコンテンツを書きます。

'w +': 書き込み+読み取り。 'w'モードに似ていますが、読み取ることができます。
注:「w +」はファイルを開くときにフォルダーのコンテンツをクリアするため、ファイルを読み取りたい場合は、最初にコンテンツを書き込む必要があります。それ以外の場合は、空の文字列が返されます。



'a'(追加): 追加の書き込み。 書き込みはできますが、読み取りはできません(書き込みは元のファイルの内容の最後に追加されます) 既存のファイルを開いた場合、開いたファイルが存在しない場合はファイルを直接操作できます。現在の.pyフォルダーに新しいファイルを作成して操作します。

'a +': 追加の読み取りと書き込み。 'a'モードに似ていますが、読み取ることができます。 'a +'モードでの読み取りに関する注意(2)(3)