[Python-es] Sustitución de cadena con comillas simples

Gerardo Diez gerardo.diez.garcia en gmail.com
Jue Mar 31 16:19:21 EDT 2016


Hola,

estoy tratando de descargar una serie de correos filtrados por una
serie de factores y me encuentro dificultades a la hora de pasarle una
cadena que debe pasarse entre comillas simples a la función de
filtrado.

Muestro un poco de código de ejemplo:

import email, imaplib, datetime

#me conecto al servidor y elijo un buzón Todo OK

user = "user"
pwd = "pwd"

m = imaplib.IMAP4_SSL("imap.gmail.com")
m.login(user,pwd)


m.select("INBOX")

#creo la cadena de filtrado
import locale
loc= locale.setlocale(locale.LC_TIME,"C")
date = datetime.date.today().strftime("%d-%b-%Y")

#el meollo está aquí
consulta_string = """'"""+'(FROM "user en host" SUBJECT "Notas" SINCE
'+date+ ')'+"""'"""

# si compruebo la cadena con un print "%s" % (consulta_string,) sale
la cadena que quiero
#filtro los correos con los criterios anteriores. Y me indica que no
puede parsear el comando
resp, items = m.search(None, "%s" % (consulta_string,))


Si en vez de la sustitución esa introduzco la cadena tal que así:

resp, items = m.search(None, '(FROM "user en host" SUBJECT "Notas" SINCE
31-Mar-2016)')


Sé que tiene que ser algo sencillo lo que se me escapa, pero no lo
veo. ¿Alguien me puede dar alguna orientación?


Muchas gracias.

PS: No me tiréis piedras por no emplear {} esta versión no me lo permite.


Más información sobre la lista de distribución Python-es