2010-12-05 25 views
0

Comment puis-je "convertir" ceci:Python ".write"

input=[(0.25 , 'x1'),(0.20 , 'x2'), ............................] 

pour que je puisse écrire dans test.txt seulement ceci: x1 = 0,25, x2 = 0,20, x3 = .. ................

f = open ('test.txt', 'w')

f.write (entrée)

f.close()

Je sais que pour l'impression, ce ok travail:

print ' '.join("%s=%s" % (y, x) for x,y in input) 

, mais je ne peux pas "importer" dansf.write (...)


Modifier: Merci à tous, tout a travaillé, je ne me souviens pas que je peux utiliser:

f.write(' '.join("%s=%s" % (y, x) for x,y in input)) 
+0

La précision émise est-elle importante? –

+0

* Je ne peux pas importer dans f.write * seul mérite la fermeture. – SilentGhost

+1

Si quelqu'un sait résoudre cela? – thaking

Répondre

1

Vous avez ' '.join("%s=%s" % (y, x) for x,y in input) et vous imprimez que; passer que pour f.write, il est une expression parfaitement valable:

f = open('text.txt', 'w') 
f.write(' '.join("%s=%s" % (y, x) for x,y in input)) 
f.close() 
2

ya un problème avec

f.write(' '.join("%s=%s" % (y, x) for x,y in input)) 

?

Ou

print >>f, ' '.join("%s=%s" % (y, x) for x,y in input) 

Il y a une différence mineure en ce que le premier n'aurait pas un retour à la ligne de fuite. Facilement fixé cependant.

1

Essayez ceci:

s = ', '.join("%s=%s" % (y, x) for x,y in input) 
f.write(s) 
1

Si vous souhaitez utiliser print, la bonne méthode dépend de la version de Python que vous utilisez. Pour Python 2:

print >>f, ' '.join("%s=%s" % (y, x) for x,y in input) 

pour Python 3:

print(' '.join("%s=%s" % (y, x) for x,y in input), file=f) 
+1

Veuillez utiliser 'f.write' plutôt que' print' ... la façon 'print' est moins agréable et moins évidente. –

0
  1. Ne nommez rien input puisque c'est une fonction intégrée
  2. Vous pouvez simplement remplacer votre déclaration print avec f.write(' '.join("%s=%s" % (y, x) for x, y in myList) et il devrait travailler juste bien
0
f = open('test.txt', 'w') 
f.write(' '.join("%s=%s" % (y, x) for x,y in input)) 
f.close() 
+0

Merci beaucoup pour cet indice ... – thaking