2

あなたがするとき:

file = open("my file","wt")

file = open("my file" , "rt")

これらは両方とも、ファイル メソッドを使用するファイル オブジェクトを作成します。しかし、それらは異なるファイル オブジェクトを作成していますか? そして、それらが異なるファイルオブジェクトを作成している場合、「wt」は可変で、「rt」は不変であると言っても過言ではありませんか?

4

2 に答える 2

2

いいえ、それは公平とは言えません。fileオペレーティング システムへのファイル操作呼び出しをプロキシする、同じ標準型のインスタンスを作成しています。モードは、オペレーティング システムで何ができるかを定義します。

同じファイル名を使用するか別のファイル名を使用するかは問題ではありません。OS は気にしませんし、Python も気にしません。開いているファイル オブジェクトは異なります。

Python オブジェクト自体は不変です。事後にモード、ファイル名、またはその他の属性を変更することはできません。

+モードに追加すると、ファイル オブジェクトの読み取り書き込みの両方が可能になることに注意してください。w+最初にファイルを切り捨てますが、そうしr+ません。

于 2013-06-15T21:04:48.473 に答える
0

OS レベルでは、これらは 2 つの異なるファイル記述子として作成されます。それらは (おそらく) VFS/キャッシュ内の同じデータを指しますが、独立して操作できます。

于 2013-06-15T21:04:41.517 に答える