web-dev-qa-db-fra.com

Python: Assigne une sortie d'impression à une variable

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?

16
Willie Koomson

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())
21
Sven Marnach

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

7

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
0
Arcyno