sys.stdout
次の構文エラーを生成するのではなく、ファイルに直接出力しようとするのはなぜですか。
Python 2.7.2+ (default, Oct 4 2011, 20:06:09)
[GCC 4.6.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> f1=open('./testfile', 'w+')
>>> print('This is a test', file=f1)
File "<stdin>", line 1
print('This is a test', file=f1)
^
SyntaxError: invalid syntax
ヘルプ(__builtins__)から私は次の情報を持っています:
print(...)
print(value, ..., sep=' ', end='\n', file=sys.stdout)
Prints the values to a stream, or to sys.stdout by default.
Optional keyword arguments:
file: a file-like object (stream); defaults to the current sys.stdout.
sep: string inserted between values, default a space.
end: string appended after the last value, default a newline.
では、標準のストリームプリントの書き込み先を変更するための正しい構文は何でしょうか。
私はファイルに書き込むための別のおそらくより良い方法があることを知っていますが、これが構文エラーであるべき理由が本当にわかりません...
素敵な説明をいただければ幸いです!
しましたか
—
アリ
from __future__ import print_function
?Pythonの<3では、印刷は声明である:
番号!私はしませんでした。もちろんそうです。これで問題は解決しました。くそっ!したがって、help(_ builtins_)に文書化されているprintは、異なる構文を持つprintの将来の(3.x)バージョンです。kachik、どうもありがとうございました、あまりにもあなた
—
アレックス・
IMO、それを
—
Wooble
help(__builtins__)
表示するのはバグです。
...さらに調査すると、python 2.7.2には組み込みの印刷機能がありますが、通常
—
Wooble
__builtins__.__dict__['print'](value, file=f1)
は簡単にアクセスできません(ただし、機能します)。
print()
はPython 3.x組み込み関数ですが、print
Python <3.x演算子です。投稿は示しています2.7.2+
。