Python - Como crear carpetas con nombre consecutivo

 
Vista:

Como crear carpetas con nombre consecutivo

Publicado por Eva Ochoa (1 intervención) el 30/05/2016 02:55:20
Hola, de antemano gracias por su ayuda! Mi duda es la siguiente:
Estoy haciendo un programa en python2 en la raspberry y tengo un boton que genera una interrupcion, la cual enciende la camara de la raspberry y toma 5 fotos. Necesito que esas fotos las guarde en una carpeta, pero necesito que cada vez que presiones el boton se cree una carpeta consecutiva a la ultima carpeta creada. Por ejemplo la primera vez que presiones el boton se guardaran en "Faces1" y la segunda vez tendra que crear una crapeta llamada "Faces2".
Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
-1
Responder
sin imagen de perfil

Como crear carpetas con nombre consecutivo

Publicado por Simuel (5 intervenciones) el 30/05/2016 08:22:31
1
2
3
4
i = 0
while True:
    print("hola"+str(i))
    i += 1


seria una forma y existe otra con el .format de string pero no recuerdo en este momento como se usa
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Miguel
Val: 42
Ha disminuido su posición en 2 puestos en Python (en relación al último mes)
Gráfica de Python

Como crear carpetas con nombre consecutivo

Publicado por Miguel (19 intervenciones) el 31/05/2016 11:00:53
En rasperry ni idea pero en un pc seria algo asi:

1
2
3
4
5
6
7
8
9
10
11
import os
 
secuencia=1
 
def crearCarpeta(ruta):
    os.makedirs(ruta)
    secuencia+=1
 
def pulsaBoton():
   rut="/home/pi/faces"+str(secuencia)
   crearCarpeta(rut)

O simplificando todo:

1
2
3
4
5
6
import os
secuencia=1
 
def crearCarpeta():
   os.mkdirs("/home/pi/faces"+str(secuencia) )
   secuencia+=1
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 2
Ha disminuido su posición en 16 puestos en Python (en relación al último mes)
Gráfica de Python

Como crear carpetas con nombre consecutivo

Publicado por laura lopez (4 intervenciones) el 18/07/2019 06:04:50
hola se que esta respuesta la dieron ya hace tiempo me puedes ayudar con esto, realice tu sentencia y funciona pero sales miles de carpetas en el cmd creandose, pero no para nunca de crearse porque es infinitas creaciones de carpetas, si quisiera tener un limite es decir crear solo 100 carpetas como lo haría
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Hector
Val: 364
Bronce
Ha disminuido su posición en 3 puestos en Python (en relación al último mes)
Gráfica de Python

Como crear carpetas con nombre consecutivo

Publicado por Hector (69 intervenciones) el 21/07/2019 03:58:42
Buen dia, espero te sea util

1
2
3
4
5
6
7
8
9
10
11
12
import os
Path="d:\\"
NomDir="Camara"
Lista=os.listdir(Path)
Lista2=[]
for Cont in range(len(Lista)):
    if str(Lista[Cont]).find(NomDir)==0:
       Lista2.append(int(str(Lista[Cont])[len(NomDir):len(str(Lista[Cont]))])) # Determina el ultimo
if Lista2==[]:
   os.makedirs(Path+NomDir+"1") # Crea el primero si no existe
else:
   os.makedirs(Path+NomDir+str(int(max(Lista2))+1)) # Crea el siguiente

saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 2
Ha disminuido su posición en 16 puestos en Python (en relación al último mes)
Gráfica de Python

Como crear carpetas con nombre consecutivo

Publicado por Laura López gutierrez (4 intervenciones) el 22/07/2019 19:01:41
Buenos dias, Primero que todo muchísimas gracias por responderme y ser tan amable, ahora quisiera mostrarte lo que me arrojo tu script , solo le cambie la ruta donde quiero que me lo guarde que es "C:\Tarea1\\", el nomDir="Tarea1" la funcion que decia cont no me salia asi que pense que quisiste decir count, y la función makedirs y la reemplace por mkdir que si la reconocía en esta versión. pero sale error, que sera lo que no concluye, otra pregunta como sabe el script para que deje de crear las 100 carpetas y que no cree mas de allí. Nuevamente muchas gracias.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
>>> import os
>>> path="C:\Tarea1\\"
>>> nomDir="Tarea1"
>>> lista=os.listdir(path)
>>> lista2=[]
>>> for count in range (len(lista)):
... if str(lista[count])find(nomDir)==0:
  File "<stdin>", line 2
    if str(lista[count])find(nomDir)==0:
     ^
IndentationError: expected an indented block
>>>  Lista2.append(int(str(Lista[Cont])[len(NomDir):len(str(Lista[Cont]))])) # Determina el ultimo
  File "<stdin>", line 1
    Lista2.append(int(str(Lista[Cont])[len(NomDir):len(str(Lista[Cont]))])) # Determina el ultimo
    ^
IndentationError: unexpected indent
>>>  if lista2==[]:
  File "<stdin>", line 1
    if lista2==[]:
    ^
IndentationError: unexpected indent
>>>  os.mkdir(path+nomDir+"1") #crea el primero sino existe
  File "<stdin>", line 1
    os.mkdir(path+nomDir+"1") #crea el primero sino existe
    ^
IndentationError: unexpected indent
>>>  else:
  File "<stdin>", line 1
    else:
    ^
IndentationError: unexpected indent
>>>  os.mkdir(path+nomDir+str(int(max(lista2))+1)) # Crea el siguiente
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Hector
Val: 364
Bronce
Ha disminuido su posición en 3 puestos en Python (en relación al último mes)
Gráfica de Python

Como crear carpetas con nombre consecutivo

Publicado por Hector (69 intervenciones) el 22/07/2019 22:20:39
Buen dia; ten presente:

*** Cont no es una función es una variable (La cambie por Contador)
*** En el Path debes colocar \\ y no \ para que no se interprete como un carácter de escape.
*** mkdir no forma parte del metodo, debes usar makedirs


1
2
3
4
5
6
7
8
9
10
11
12
13
import os
Path="C:\\"
NomDir="Tarea"
Lista=os.listdir(Path)
Lista2=[]
for Contador in range(len(Lista)):
    if str(Lista[Contador]).find(NomDir)==0:
        ParteNumero=str(Lista[Contador])[len(NomDir):len(str(Lista[Contador]))]
        if (ParteNumero.isnumeric()): Lista2.append(ParteNumero) # Determina el ultimo               
if Lista2==[]:
   os.makedirs(Path+NomDir+"1") # Crea el primero si no existe
else:
   os.makedirs(Path+NomDir+str(int(max(Lista2))+1)) # Crea el siguiente

(CPP) Copia, pega y prueba; el script corre perfectamente

Siempre a la orden!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Hector
Val: 364
Bronce
Ha disminuido su posición en 3 puestos en Python (en relación al último mes)
Gráfica de Python

Como crear carpetas con nombre consecutivo

Publicado por Hector (69 intervenciones) el 23/07/2019 12:47:28
El script <anterior> cada vez que se ejecuta busca si existe el directorio y si lo encuentra determina el mayor para luego crear el siguiente directorio, si no existe crea el primer directorio; sin embargo creo que tu consulta era mas simple: crear automáticamente y de una vez n cantidad de directorio, esto lo puedes hacer con el <siguiente> script:

1
2
3
4
5
import os
Carpeta="C:\\Tarea"
CantCarpeta=5
for Contador in range(CantCarpeta):
    os.makedirs(Carpeta+str(Contador+1))

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Como crear carpetas con nombre consecutivo

Publicado por Laura López gutierrez (4 intervenciones) el 27/07/2019 06:54:22
buenas noches, disculpa que no te había dado las gracias por tu colaboración estaba super ocupada y no había podido seguir con mis tareas de la especialización, la verdad estos temas de scripts y sql es muy duro en particular,, estuve utilizando el que me enviaste y si me crea las carpetas, solo le cambie la ubicación del de creación y la función makedirs por mkdir que para mi version de python esta es la que reconoce, quería mostrarte algo que le inclui por que dice en la tarea del script durante su ejecución debe preguntar al usuario por el directorio la cual desea crear las carpetas, yo cree un print y input para que me pregunte, pero cuando me pregunta y no le escribo la mismo ubicacion que le estoy obligando que me las cree no corre:(el profe me indica que utilice print y explicaciones dentro del script por eso le estoy incluyendo esto. adjunto el que hice
para que me de tu opinión por favor.disculpa si te incomodo con tanta pregunta.
1
2
3
4
5
6
7
import os
print ("que directorio desea guardar las carpetas?")
nombre_directorio = input()
Carpeta="C:\Tarea1\M1T1\\carpeta"
CantCarpeta=5
for Contador in range(CantCarpeta):
    os.mkdir(Carpeta+str(Contador+1))

muchas gracias nuevamete.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Hector Madriz
Val: 364
Bronce
Ha disminuido su posición en 3 puestos en Python (en relación al último mes)
Gráfica de Python

Como crear carpetas con nombre consecutivo

Publicado por Hector Madriz (69 intervenciones) el 27/07/2019 17:32:34
Buen dia,

1
2
3
4
5
import os
CantCarpeta=10
Carpeta=input('INTRODUZCA LA CARPETA A CREAR: ')
for Contador in range(CantCarpeta):
    os.makedirs(Carpeta+str(Contador+1))

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

crear archivo grid

Publicado por Laura López gutierrez (4 intervenciones) el 08/09/2019 02:30:40
hola como estas, otra vez yo molestandote si me puede ayudar con este script. mira tengo que hacer lo siguiente en este script:

1.Hacer un listado de los archivos Ascii-raster (ListRaster).
2. Hacer un ciclo for que le permita ejecutar los procesos que se mencionan a todos y cada uno de los raster listados.
3. Convertir cada uno de los archivos Ascii-raster a GRID-raster (mediante: ASCIIToRaster). Además, permitir sobrescribir los archivos Raster-Grid existentes.
4. Extraer el valor promedio (MEAN) de cada raster (sugerencia: GetRasterProperties_management).
5. Escribir los valores de manera automática en un archivo de texto tanto el nombre de cada raster como el valor extraído. La escritura
del archivo se debe habilitar de manera que sobrescriba cualquier texto/valor/número que haya en él.

Ademas me dan estas consideraciones adicionales:

Para este script se necesita la Extension “Spatial Analyst” (use arcpy.CheckOutExtension ("Spatial") para comprobar la disponibilidad
en su script).
·Determine y explique si es necesario o no configurar los environment settings en el script y hágalo o no, dependiendo de su juicio al respecto.
·La función GetRasterProperties_management no funciona con Rasters-ASCII.
·La proyección de los datos es GCS_WGS_1984.

bueno yo logre hacer este script pero no me esta corriendo en primera instancia me dice que tengo error en las tabulaciones y no deja seguir corriendolo:

import arcpy

inASCII("Agregar path archivos ASCII")
#"D:\datos_Valle\bccrBcm2_2050"
arcpy.env.workspace = inASCII
rasters = arcpy.ListRasters ("*", "ALL") # se agregan los archivos rasters
outRaster = input ("path de salida archivos") # "D:\datos_Valle\bccrBcm2_2050Grid\" #path
filepath = input ("agregar el path del archivo de salida") #"D:\datos_Valle\bccrBcm2_2050\valores.txt"

with open(filepath, 'w') as txtfile: #se abre el archivo
for raster in rasters: #se itera los rasters
arcpy.ASCIItoRaster_conversion(inASCII + raster,outRaster + raster.replace (".asc","")) #se trasnforman los archivos
mean = arcpy.GetRasterProperties_management(outRaster + raster.replace(".asc",""), "MEAN") #se obtiene el promenedio
raster_value = mean.getOutput(0)
txtfile.write(raster.replace(".asc","") + "\t" + raster_value + "\n") # se inserta el promedio en el archivo
print ("raster")


si me pudes ayudar que es lo que tengo mal en este script. Te agradezco de antemano. Me dieron una carpeta con archivos ASCII
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-1
Comentar