11
私は、次のコードを持っている:なぜopen(True、 'w')はsys.stdout.writeのようなテキストを出力しますか?
with open(True, 'w') as f:
f.write('Hello')
はなぜ代わりにエラーを上げ、このコード印刷はテキストHello
のでしょうか? built-in function documentation on open()
から
私は、次のコードを持っている:なぜopen(True、 'w')はsys.stdout.writeのようなテキストを出力しますか?
with open(True, 'w') as f:
f.write('Hello')
はなぜ代わりにエラーを上げ、このコード印刷はテキストHello
のでしょうか? built-in function documentation on open()
から
:
:さらに
open(file, mode='r', buffering=-1...
ファイルは、文字列またはバイトのいずれかが開かれるべきファイルまたは整数ファイル記述子の(現在の作業ディレクトリへの絶対または相対)パス名を与えるオブジェクトでありますos
module documentationに記述されている「整数ファイルディスクリプタ」ということ
をラップするファイルの
たとえば、標準入力は通常ファイル記述子0、標準出力は1、標準エラーは2です。プロセスによって開かれたさらに別のファイルには3,4,5などが割り当てられます。
ブールはint
サブクラスであるので、False
は1
で0
とTrue
と互換的に使用することができます。したがって、ファイルディスクリプタTrue
を開くことは、標準出力を選択するファイルディスクリプタ1
を開くことと同じです。
「0」はどうですか? :) –
ファイルを開くときに '3'、' 4'、 '5'などとなりますか? –
2番目のクォートブロックで言うように、 '0'は標準入力であり、より多くのファイルが開かれると順次整数が割り当てられます。 – TigerhawkT3