私は、Python 3へのpython 2からコードを変換する必要があると私はprint >>
は、どのように私は3「print >>」はPythonで何をしますか?
print >> sys.stderr, '--'
print >> sys.stderr, 'entrada1: ', entrada1
print >> sys.stderr, 'entrada2: ', entrada2
print >> sys.stderr, '--'
私は、Python 3へのpython 2からコードを変換する必要があると私はprint >>
は、どのように私は3「print >>」はPythonで何をしますか?
print >> sys.stderr, '--'
print >> sys.stderr, 'entrada1: ', entrada1
print >> sys.stderr, 'entrada2: ', entrada2
print >> sys.stderr, '--'
pythonでそれを書くべきでないん>> sys.stderr
部分がへprint
文の出力を作るのか理解できませんstderrの代わりにPythonの2の標準出力
documentationを引用する:
>>
の後の最初の式は、「ファイルライク」オブジェクト、具体的には上記のようにwrite()
メソッドを持つオブジェクトに評価する必要があります。 この拡張形式では、後の式 がこのファイルオブジェクトに出力されます。最初の の式がNone
と評価された場合は、 出力のファイルとしてsys.stdout
が使用されます。 Pythonの3用途において
print()
関数にfile
引数:
print("spam", file=sys.stderr)
パイソン2からのPython 3、変化にこれらを変換する:
print >>sys.stderr, 'Hello'
に:
print('Hello', file=sys.stderr)
p stderr
ノート
sys.stderr.write()
にrintingは、バージョン間で移植され、まだあなたがprint
とは異なり、改行を追加する必要があります。たとえば
import sys
errlog = sys.stderr.write
errlog("an error message\n")
また、['.write()'](https://docs.python.org/2/library/stdtypes.html#file.write)は引数が文字列であると想定しています。文字列以外のものを書くには、最初に文字列に変換する必要があります: 'sys.stderr.write(str(['the answer'、42]))' –
あなたが話しているコードを共有できますか? – Mureinik
それは本当に長いですが、それはそれの一部です –
2to3でこれをフィードできませんでしたか? – user2357112