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

2016-03-31 Por tema Kiko
El 31 de marzo de 2016, 23:40, Gerardo Diez 
escribió:

> Cierto. Funciona. Muchísimas gracias. No sé porqué a veces me lío la
> manta a la cabeza y cada vez complico más y más el código.
>

Es debido al T[MC]DD: Too Much Coffee Driven Development


>
> El día 31 de marzo de 2016, 22:39, Kiko  escribió:
> >
> >
> > El 31 de marzo de 2016, 22:19, Gerardo Diez <
> gerardo.diez.gar...@gmail.com>
> > escribió:
> >>
> >> 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@host" SUBJECT "Notas" SINCE
> >> '+date+ ')'+"""'"""
> >
> >
> > Creo que dejando esta línea así:
> >
> > consulta_string = '(FROM "user@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,))
> >
> >
> > Y esta así:
> > resp, items = m.search(None, consulta_string)
> >
> > te debería funcionar.
> >
> >>
> >>
> >>
> >> Si en vez de la sustitución esa introduzco la cadena tal que así:
> >>
> >> resp, items = m.search(None, '(FROM "user@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.
> >> ___
> >> Python-es mailing list
> >> Python-es@python.org
> >> https://mail.python.org/mailman/listinfo/python-es
> >> FAQ: http://python-es-faq.wikidot.com/
> >
> >
> >
> > ___
> > Python-es mailing list
> > Python-es@python.org
> > https://mail.python.org/mailman/listinfo/python-es
> > FAQ: http://python-es-faq.wikidot.com/
> >
> ___
> Python-es mailing list
> Python-es@python.org
> https://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


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

2016-03-31 Por tema Gerardo Diez
Cierto. Funciona. Muchísimas gracias. No sé porqué a veces me lío la
manta a la cabeza y cada vez complico más y más el código.

El día 31 de marzo de 2016, 22:39, Kiko  escribió:
>
>
> El 31 de marzo de 2016, 22:19, Gerardo Diez 
> escribió:
>>
>> 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@host" SUBJECT "Notas" SINCE
>> '+date+ ')'+"""'"""
>
>
> Creo que dejando esta línea así:
>
> consulta_string = '(FROM "user@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,))
>
>
> Y esta así:
> resp, items = m.search(None, consulta_string)
>
> te debería funcionar.
>
>>
>>
>>
>> Si en vez de la sustitución esa introduzco la cadena tal que así:
>>
>> resp, items = m.search(None, '(FROM "user@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.
>> ___
>> Python-es mailing list
>> Python-es@python.org
>> https://mail.python.org/mailman/listinfo/python-es
>> FAQ: http://python-es-faq.wikidot.com/
>
>
>
> ___
> Python-es mailing list
> Python-es@python.org
> https://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


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

2016-03-31 Por tema Kiko
El 31 de marzo de 2016, 22:19, Gerardo Diez 
escribió:

> 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@host" SUBJECT "Notas" SINCE
> '+date+ ')'+"""'"""
>

Creo que dejando esta línea así:

consulta_string = '(FROM "user@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,))
>

Y esta así:
resp, items = m.search(None, consulta_string)

te debería funcionar.


>
>
> Si en vez de la sustitución esa introduzco la cadena tal que así:
>
> resp, items = m.search(None, '(FROM "user@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.
> ___
> Python-es mailing list
> Python-es@python.org
> https://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


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

2016-03-31 Por tema Gerardo Diez
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@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@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.
___
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/