Nuestro reto es que tenemos que buscar y duplicar aproximadamente 3000 imágenes en una nueva carpeta.
La lista de nombres de imágenes es un archivo csv. Los archivos están todos en una unidad, pero en muchas carpetas diferentes.
Nuestro reto es que tenemos que buscar y duplicar aproximadamente 3000 imágenes en una nueva carpeta.
La lista de nombres de imágenes es un archivo csv. Los archivos están todos en una unidad, pero en muchas carpetas diferentes.
Usando Bash:
#!/bin/bash
cat /path/to/file.csv | while IFS=, read col1 col2 col3
do
find . -path "$col1" -exec cp {} /DESIRED/DIRECTORY \;
done
IFS
es el separador de campos de entrada. Declarar como ,
para .csv
.find . -path
busca en su directorio principal de forma recursiva los nombres leídos desde col1
, devolviendo la ruta completa.exec
ejecuta el cp
comando en {}
que representa todos los resultados find
devuelve/DESIRED/DIRECTORY
y \;
es necesario para terminar el exec
comandoAquí hay un simple Python script que hará el truco:
import csv, subprocess
csv_path = '/Users/mdryden/Desktop/test2/test.csv'
search_path = '/Users/mdryden/Desktop/test2/'
output_path = '/Users/mdryden/Desktop/test3/'
with open(csv_path, 'rb') as csvfile:
dialect = csv.Sniffer().sniff(csvfile.read(1024))
csvfile.seek(0)
reader = csv.reader(csvfile, dialect)
for line in reader:
subprocess.call(["find", search_path, "-name", line[0],
"-exec", "cp", "{}", output_path,";"])
Establezca csv_path, search_path y output_path según corresponda. Si se trata de un formato CSV remotamente estándar, debería ser capaz de autodetectarlo. line[0]
al número de la columna que contiene los nombres de los archivos (empezando por 0 para la primera columna).
Yo usaría applescript .
Abrir el archivo csv en excel agarrar los archivos, luego pasar la variable a la terminal donde se ejecutaría un find
seguido de un comando copy
al directorio de su elección.
Aquí tienes algunos consejos:
Recorrer el csv.
AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.