44

ファイルを開いて読み書きしようr+としましたが、「r +」と「a +」はすべてstrをファイルの最後に追加します。a+

r+では、との違いは何a+ですか?


追加:

私は理由を見つけました:

ファイルオブジェクトを読みましたが、場所を先頭に設定するために seek(0) するのを忘れていました

4

3 に答える 3

72

Python は、Cとほぼ同じ方法でファイルを開きます。

  • r+ 読み取りおよび書き込み用に開きます。ストリームはファイルの先頭に配置されます。

  • a+ 読み取りと追加 (ファイルの最後に書き込み) のために開きます。ファイルが存在しない場合は作成されます。読み取りの最初のファイル位置はファイルの先頭ですが、出力はファイルの末尾に追加されます (ただし、現在のシーク位置に関係なく、一部の Unix システムでは)。

于 2012-11-06T09:28:04.977 に答える
6

1 つの違いはr+、ファイルが存在しない場合は作成されず、開くことができないことです。ただしa+、ファイルが存在しない場合は作成されます。

于 2012-11-06T09:28:43.757 に答える
5

で使用したことがある場合Cは、C で使用していたものとほとんど同じです。

関数のマンページからfopen(): -

  • r+: - 読み書き用に開きます。ストリームはファイルの先頭に配置されます。

  • a+: - 読み書き用に開きます。ファイルが存在しない場合は作成されます。ストリームはファイルの最後に配置されます。ファイルへの後続の書き込みは、介在する fseek(3) などに関係なく、常にその時点でのファイルの終わりで終了します。
于 2012-11-06T09:28:50.463 に答える