J'aimerais savoir comment affecter le résultat de la fonction print
(ou une fonction quelconque) à une variable. Pour donner un exemple:
import eyeD3
tag = eyeD3.Tag()
tag.link("/some/file.mp3")
print tag.getArtist()
Comment attribuer la sortie de print tag.getArtist
à une variable?
L'instruction print
en Python convertit ses arguments en chaînes et les renvoie sur stdout. Pour enregistrer la chaîne dans une variable, convertissez-la uniquement en chaîne:
a = str(tag.getArtist())
vous avez probablement besoin de l'une des fonctions str
, repr
ou unicode
somevar = str(tag.getArtist())
en fonction de quel shell python utilisez-vous
somevar = tag.getArtist()
Pour répondre à la question plus généralement how to redirect standard output to a variable ?
faire ce qui suit:
from io import StringIO
import sys
result = StringIO()
sys.stdout = result
result_string = result.getvalue()
Si vous devez le faire uniquement dans certaines fonctions, procédez comme suit:
old_stdout = sys.stdout
# your function containing the previous lines
my_function()
sys.stdout = old_stdout