He estado aprendiendo Python durante aproximadamente 3 semanas, y actualmente estoy tratando de escribir un pequeño script para clasificar archivos (aproximadamente 10.000) por palabras clave y la fecha aparece en el nombre del archivo. Los archivos antes de una fecha determinada se deben agregar a un archivo. La clasificación funciona bien, pero no el archivoPython: ¿Cómo obtener archivos en un archivo sin el directorio?
Crea un archivo - el nombre está bien - pero en el archivo está la ruta completa a los archivos. Si lo abro, se ve así: folder1 -> folder2 -> folder3 -> files
.
¿Cómo puedo cambiarlo de modo que el archivo solo contenga los archivos y no toda la estructura?
A continuación se muestra un fragmento con mi función postal, node
es la ruta donde los archivos estaban antes de la clasificación, folder
es una subcarpeta con los archivos ordenados por una palabra clave en el nombre, items
son las carpetas con los archivos ordenados por fecha.
estoy usando Python 2,6
def ZipFolder(node, zipdate):
xynode = node + '/xy'
yznode = node + '/yz'
for folder in [xynode,yznode]:
items = os.listdir(folder)
for item in items:
itemdate = re.findall('(?<=_)\d\d\d\d-\d\d', item)
print item
if itemdate[0] <= zipdate:
arcname = str(item) + '.zip'
x = zipfile.ZipFile(folder + '/' + arcname, mode='w', compression = zipfile.ZIP_DEFLATED)
files = os.listdir(folder + '/' + item)
for f in files:
x.write(folder + '/' + item + '/' + f)
print 'writing ' + str(folder + '/' + item + '/' + f) + ' in ' + str(item)
x.close()
shutil.rmtree(folder + '/' + item)
return
También estoy abierto a todas las sugerencias y mejoras.
No hay comentarios, pero docstring. Explica qué hace la función y para qué es útil, no cómo funciona y la docstring es más útil para eso. –
increíble funciona, gracias por la ayuda rápida. – rny
@Jan Hudec: con docstring te refieres a algo así: def ZipFolder (node, zipdate): "" "archivos zip anteriores a 'zipdate' en las subcarpetas de 'node'" "" – rny