print
関数(または任意の関数)の出力を変数に割り当てる方法を知りたいです。例を挙げると:
import eyeD3
tag = eyeD3.Tag()
tag.link("/some/file.mp3")
print tag.getArtist()
print tag.getArtist
の出力を変数に割り当てるにはどうすればよいですか?
Python)のprint
ステートメントは、引数を文字列に変換し、それらの文字列を標準出力に出力します。
a = str(tag.getArtist())
おそらくstr
、repr
またはunicode
関数のいずれかが必要です
somevar = str(tag.getArtist())
どのpython Shellを使用していますか
somevar = tag.getArtist()
より一般的な質問に答えるにはhow to redirect standard output to a variable ?
以下をせよ :
from io import StringIO
import sys
result = StringIO()
sys.stdout = result
result_string = result.getvalue()
一部の機能でのみこれを行う必要がある場合は、次の手順を実行します。
old_stdout = sys.stdout
# your function containing the previous lines
my_function()
sys.stdout = old_stdout
注意してください、私は_Python 3.x
_に基づいてこの回答を書きました。このような変数に print()
ステートメントを割り当てることができます。
_>>> var = print('some text')
some text
>>> var
>>> type(var)
<class 'NoneType'>
_
ドキュメントによると、
キーワード以外の引数はすべて
str()
doesのような文字列に変換され、sepで区切られ、その後にendが続くストリームに書き込まれます。 sepとendは両方とも文字列でなければなりません。None
にすることもできます。これは、デフォルト値を使用することを意味します。オブジェクトが指定されていない場合、print()は単にendを書き込みます。ファイル引数は、
write(string)
メソッドを持つオブジェクトでなければなりません。存在しない場合、またはNone
の場合、 _sys.stdout
_ が使用されます。印刷された引数はテキスト文字列に変換されるため、print()
はバイナリモードファイルオブジェクトでは使用できません。これらの場合は、代わりにfile.write(...)
を使用してください。
そのため、変数に print()
ステートメント値を割り当てることができません。この質問では、_(or any function)
_を尋ねました。 print()
は、戻り値がNone
の関数でもあります。 python function の戻り値はNone
です。ただし、関数を(かっこ()で)呼び出して、この方法で戻り値を保存することができます。
_>>> var = some_function()
_
そのため、var
変数の戻り値はsome_function()
またはデフォルト値None
です。 print()
、All non-keyword arguments are converted to strings like str() does and written to the stream
に関するドキュメントによると。 str()
内で何が起こるか見てみましょう。
オブジェクトの string バージョンを返します。オブジェクトが提供されない場合、空の文字列を返します。それ以外の場合、
str()
の動作は、次のように、エンコードまたはエラーが指定されているかどうかによって異なります。
文字列オブジェクトを取得したら、次のコード行を次のように変更できます。
_>>> var = str(some_function())
_
または、実際に string
オブジェクトがある場合は、 str.join()
を使用できます。
Iterableの文字列を連結した文字列を返します。
TypeError
オブジェクトを含む反復不可能な文字列値がある場合、bytes
が発生します。要素間のセパレータは、このメソッドを提供する文字列です。
変更は次のようになります。
_>>> var = ''.join(some_function()) # you can use this if some_function() really returns a string value
_