30/12/2015, 16:00
|
| | Fecha de Ingreso: diciembre-2015
Mensajes: 1
Antigüedad: 8 años, 10 meses Puntos: 0 | |
¿Cómo mover archivos por fechas a sus respectivas carpetas en Python? Tengo varios archivos que tiene por nombre la fecha en día juliano. Ejemplo:
2014353_180000
2014353_190000
2014353_200000
2014354_180000
2014354_190000
2015355_190000
2015355_200000
...etc.
Lo que quiero es que de esos archivos pasarlos a su respectiva carpeta, como lo muestro a continuación.
Código:
├ 2014353/
| ├─ 2014353_180000
| ├─ 2014353_190000
| └─ 2014353_200000
├ 2015354/
| ├─ 2015354_190000
| └─ 2015354_200000
etc ...
¿Cómo podría hacerlo, alguna ayuda?
Tengo lo siguiente:
Código:
import glob, os, shutil, os, errno, sys
import subprocess
from glob import glob
from os.path import join
from os import listdir, makedirs
from os.path import isfile, join, exists
from shutil import move
def esFecha( nombre ):
if ( len(nombre)<7 ):
return False
if ( not nombre[0:7].isdigit() ):
return False
dia = int( nombre[4:7] )
return dia>=1 and dia<=366
def moverFichero( nombre, listado ):
directorio = nombre[0:7]
destino = join( listado, directorio)
if ( not exists(destino) ):
makedirs(destino)
origen = join( listado, nombre )
move ( origen, destino )
dirBase='C:\\Dats\\'
listado = glob(join(dirBase,'D*','2*','B*','*','*'))
ficheros = [ f for f in listdir(listado) if isfile(join(listado,f)) ]
for fich in ficheros:
if ( esFecha( fich ) ):
moverFichero( fich, listado )
me aparece el siguiente error:
Código:
Traceback (most recent call last):
File "directorio.py", line 28, in <module>
ficheros = [ f for f in listdir(listado) if isfile(join(listado,f)) ]
TypeError: coercing to Unicode: need string or buffer, list found
|