¿Como puedo crear un ciclo en «while» que me atraiga diferentes PDF de una carpeta para pasarlos a Excel?
0
0
Requiero crear un ciclo (while o if) en el que pueda convertir varios PDF en texto de Excel, la imagen que comparto es del ciclo que ya diseño pero con el mismo PDF, con que extensión podría cargar diferentes PDF de una carpeta mía.
Vi la imagen donde concatenas y tenes 3 variables cuando deberían ser dos:
1 variable que tenga la ruta del path del disco. Por ejemplo: «C:\Users\Usuario\Pictures\Carpeta». Aca debes recordar anexar la pleca al final (ya que si la copias directo del disco no la pone) y luego tendría que ir el nombre del archivo. Por ejemplo: «Hola.pdf».
La concatenacion: «{var1}» + «{var2}», aunque de la forma que vos lo estas haciendo creo que talves funcione. Esto debería darte un resultado asi:
«C:\Users\Usuario\Pictures\Carpeta\Hola.pdf»
Por eso no entiendo que tenes en esa tercer variable. Por otra parte, el error creo que podes solucionarlo cambiando la pleca invertida de la ruta, por la pleca normal, es decir: «/»
Si claro, lo de las variables ya as acomode para que sean dos, la ruta y el documento, que quede así: «{varriable ruta}{Documento}», así me sirvió la concatenación.
Pero me sigue apareciendo el error en la acción «Leer PDF»: «Invalid \escape: line 1 column 52 (char 51)», Ya con la ruta «bien».
Es solo por ese error, que no puedo continuar el proceso, queda atento muchas gracias.
En esa ruta que tenes guardada en la variable, proba manualmente reemplazar todas las plecas invertidas por las plecas normales: «/» y proba ejecutar el comando de leer pdf, eso debería funcionar
Te recomendaría que definas una carpeta en donde se van a guardar todos los pdf’s que vas a utilizar. En ese sentido, podes usar formularios en caso de que terceras personas necesiten subir estos pdf’s.
Además, podes usar el módulo de archivos para listar todo el contenido de la carpeta que definiste previamente. Esto se guardara en una lista.
Seguido, utilizas un for para recorrer esta lista y utilizas ese comando de leer pdf y vas escribiendo en el archivo excel lo que te interesa.
Terminando el for, simplemente eliminas todos los archivos pdf de la carpeta igual con el modulo de archivos y listo, es todo.
Tengo dos preguntas, la primera, ¿Que asigno como elemento iterable, la variable que cuenta los PDFs de la carpeta?
Y ¿Como hago para que la acción «Leer PDF» vaya cambiando de PDF? Si en la misma me hace elegir uno en especifico.
Primero tenes que ejecutar el comando «Listar archivos ordenados» y esa variable que guarda el resultado es la que vas a poner en Elemento iterable. Luego vas a crear otra variable que es la que vas a seleccionar en el la lista que aparece.
Y el contenido de esta variable es la que vas a poner en el comando de leer pdf
Gracias por al ayuda, si me sirvió el ciclo, me lee los PDF de la carpeta y repite el proceso la misma cantidad que # de PDFs hay, pero el problema es que la acción «Leer PDF» no me esta leyendo el PDF, este es el error: «[Errno 2] No such file or directory: ‘POSITIVA COMPAÑIA DE SEGUROS.pdf’».
O sea el lector de documentos le agrega el tipo «.pdf» al nombre y cuando el lector de PDF busca el archivo no hay ninguno con el «Nombre + .pdf».
Gracias por al ayuda, si me sirvió el ciclo, me lee los PDF de la carpeta y repite el proceso la misma cantidad que # de PDFs hay, pero el problema es que la acción «Leer PDF» no me esta leyendo el PDF, este es el error: «[Errno 2] No such file or directory: ‘POSITIVA COMPAÑIA DE SEGUROS.pdf'».
O sea el lector de documentos le agrega el tipo «.pdf» al nombre y cuando el lector de PDF busca el archivo no hay ninguno con el «Nombre + .pdf».
Para serte sincero no te entiendo. Se supone que los archivos pdf estan en una carpeta, el comando listar te trae el nombre y la extensión que debes pasar al comando leer pdf.
Si dice que no encuentra el nombre del archivo.pdf entonces que hay en la carpeta. podrías dejar una captura?
Recorda que el comando te va a listar los nombres de los archivos pero no la ruta. Entonces, crea una variable que tenga el path donde se encuentra la carpeta y concatenalo a la variable iteradora. En este caso, con un comando «Asignar», dentro del for antes de pasarle la variable al comando de leer pdf, añadi la concatenación.
Por ejemplo: «{pathCarpeta}» + «{Desprendible}». Recorda que las comillas deben ir al estar tratando con strings.
Ahhhh clarooo, listo, si me sirvió esa concatenación y si me resulta la ruta de cada documento, pero en la acción de Leer PDF, me aparece este error: «Invalid \escape: line 1 column 52 (char 51)», pero creo que sera algo de la carpeta.
Igualmente mucha gracias por la ayuda hasta ahora :).
Lo que pasa es que «» no lo reconoce. En este caso tenes dos opciones, probar a modificar este caracter por el normal: «/» o escaparlo de la siguiente forma:
En vez de un solo «», pones dos: «». Esto podes modificarlo directamente en la variable del path y ya luego solo concatenas el nombre.
Ya pude solucionar lo de la concatenación de la ruta, pero me sigue apareciendo el error que te comente «Invalid \escape: line 1 column 52 (char 51)», no se si tenga que ver con la imagen que comparto, ya que no alcanza a reconocer la ruta que se concateno.
Haber, es raro
Vi la imagen donde concatenas y tenes 3 variables cuando deberían ser dos:
1 variable que tenga la ruta del path del disco. Por ejemplo: «C:\Users\Usuario\Pictures\Carpeta». Aca debes recordar anexar la pleca al final (ya que si la copias directo del disco no la pone) y luego tendría que ir el nombre del archivo. Por ejemplo: «Hola.pdf».
La concatenacion: «{var1}» + «{var2}», aunque de la forma que vos lo estas haciendo creo que talves funcione. Esto debería darte un resultado asi:
«C:\Users\Usuario\Pictures\Carpeta\Hola.pdf»
Por eso no entiendo que tenes en esa tercer variable. Por otra parte, el error creo que podes solucionarlo cambiando la pleca invertida de la ruta, por la pleca normal, es decir: «/»
Proba y me decis
Hola,
Si claro, lo de las variables ya as acomode para que sean dos, la ruta y el documento, que quede así: «{varriable ruta}{Documento}», así me sirvió la concatenación.
Pero me sigue apareciendo el error en la acción «Leer PDF»:
«Invalid \escape: line 1 column 52 (char 51)», Ya con la ruta «bien».
Es solo por ese error, que no puedo continuar el proceso, queda atento muchas gracias.
En esa ruta que tenes guardada en la variable, proba manualmente reemplazar todas las plecas invertidas por las plecas normales: «/» y proba ejecutar el comando de leer pdf, eso debería funcionar
Buen día José,
Muchas gracias, si sirvió el cambio de «/», si me lee el PDF y si lo puedo convertir o escribir en un Excel, muchas gracias, de verdad.
ya me falta algo mas de agregar condicionales para poder segmentar cierta parte del contenido, pero eso es mas mano de obra, gracias.
Excelente bro, cualquier otra duda estamos a la orden. Saludos
Te recomendaría que definas una carpeta en donde se van a guardar todos los pdf’s que vas a utilizar. En ese sentido, podes usar formularios en caso de que terceras personas necesiten subir estos pdf’s.
Además, podes usar el módulo de archivos para listar todo el contenido de la carpeta que definiste previamente. Esto se guardara en una lista.
Seguido, utilizas un for para recorrer esta lista y utilizas ese comando de leer pdf y vas escribiendo en el archivo excel lo que te interesa.
Terminando el for, simplemente eliminas todos los archivos pdf de la carpeta igual con el modulo de archivos y listo, es todo.
Si no lo conoces, el módulo del que te habló es el siguiente: https://market.rocketbot.com/module/Files
Si tenes alguna otra duda, no dudes en escribirme
Hola, gracias por la información.
Tengo dos preguntas, la primera, ¿Que asigno como elemento iterable, la variable que cuenta los PDFs de la carpeta?
Y ¿Como hago para que la acción «Leer PDF» vaya cambiando de PDF? Si en la misma me hace elegir uno en especifico.
Gracias.
Primero tenes que ejecutar el comando «Listar archivos ordenados» y esa variable que guarda el resultado es la que vas a poner en Elemento iterable. Luego vas a crear otra variable que es la que vas a seleccionar en el la lista que aparece.
Y el contenido de esta variable es la que vas a poner en el comando de leer pdf
Gracias por al ayuda, si me sirvió el ciclo, me lee los PDF de la carpeta y repite el proceso la misma cantidad que # de PDFs hay, pero el problema es que la acción «Leer PDF» no me esta leyendo el PDF, este es el error: «[Errno 2] No such file or directory: ‘POSITIVA COMPAÑIA DE SEGUROS.pdf’».
O sea el lector de documentos le agrega el tipo «.pdf» al nombre y cuando el lector de PDF busca el archivo no hay ninguno con el «Nombre + .pdf».
Gracias por al ayuda, si me sirvió el ciclo, me lee los PDF de la carpeta y repite el proceso la misma cantidad que # de PDFs hay, pero el problema es que la acción «Leer PDF» no me esta leyendo el PDF, este es el error: «[Errno 2] No such file or directory: ‘POSITIVA COMPAÑIA DE SEGUROS.pdf'».
O sea el lector de documentos le agrega el tipo «.pdf» al nombre y cuando el lector de PDF busca el archivo no hay ninguno con el «Nombre + .pdf».
Para serte sincero no te entiendo. Se supone que los archivos pdf estan en una carpeta, el comando listar te trae el nombre y la extensión que debes pasar al comando leer pdf.
Si dice que no encuentra el nombre del archivo.pdf entonces que hay en la carpeta. podrías dejar una captura?
Si están en una carpeta y así mismo los enlista y atrae en una variable con el nombre del PDF, pero la acción de «Leer PDF» no lo lee.
Ya entendí el error jaja
Recorda que el comando te va a listar los nombres de los archivos pero no la ruta. Entonces, crea una variable que tenga el path donde se encuentra la carpeta y concatenalo a la variable iteradora. En este caso, con un comando «Asignar», dentro del for antes de pasarle la variable al comando de leer pdf, añadi la concatenación.
Por ejemplo: «{pathCarpeta}» + «{Desprendible}». Recorda que las comillas deben ir al estar tratando con strings.
Proba y me decis. Saludos.
Ahhhh clarooo, listo, si me sirvió esa concatenación y si me resulta la ruta de cada documento, pero en la acción de Leer PDF, me aparece este error: «Invalid \escape: line 1 column 52 (char 51)», pero creo que sera algo de la carpeta.
Igualmente mucha gracias por la ayuda hasta ahora :).
Lo que pasa es que «» no lo reconoce. En este caso tenes dos opciones, probar a modificar este caracter por el normal: «/» o escaparlo de la siguiente forma:
En vez de un solo «», pones dos: «». Esto podes modificarlo directamente en la variable del path y ya luego solo concatenas el nombre.
Ya pude solucionar lo de la concatenación de la ruta, pero me sigue apareciendo el error que te comente «Invalid \escape: line 1 column 52 (char 51)», no se si tenga que ver con la imagen que comparto, ya que no alcanza a reconocer la ruta que se concateno.
quedo atento 🙂