2012-10-08 18 views
17

Conozco el mágico comando IPython %paste, que es bastante útil, si tiene un código válido para insertar. Ahora no quiero insertar código, solo quiero almacenar una cadena del buffer de copia como variable. ¿Hay una manera más simple de hacerlo, excepto copiar la cadena en algún editor de texto por separado y modificarlo primero?Pegue una cadena como una variable, no como un fragmento de código ejecutable, en IPython

Algo como esto sería bueno, pero ninguno de ellos está trabajando:

strvar = %paste 
strvar = """%paste""" 

P. S. La cadena es larga y contiene caracteres especiales, etc. por lo que simple ctrl-c solo crea basura y mensajes de error.

+0

Sé cómo funciona% paste. Esta no era la pregunta, y me pregunto si lees la pregunta, antes de desvincularla oO – Michael

+0

Si abres las comillas triples y luego pegas desde el portapapeles, no debería haber ningún mensaje de error. –

+2

No, esto solo da un "% paste" como una cadena, no como el portapapeles. – Michael

Respuesta

27
%paste strvar 

le da una lista de las líneas del texto copiado. Puede hacer

strvar = '\n'.join(strvar) 

para obtener el texto en una sola cadena.

+0

¡Impresionante, gracias! – Michael

+10

En realidad es una subclase de lista especial; puede hacer 'strvar.n' para obtener texto ensamblado en la nueva línea. Del mismo modo 'strvar.s' para espacio separado. –

Cuestiones relacionadas