Re: [Python-es] Sustitución de cadena con comillas simples
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
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
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
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/