2 votos

¿Existe un sencillo script para duplicar archivos en una nueva carpeta basándose en un archivo csv?

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.

3voto

Goldorak84 Puntos 116

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
  • los archivos se copian en /DESIRED/DIRECTORY y \; es necesario para terminar el exec comando

1voto

Aquí 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).

0voto

maxpenguin Puntos 1488

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.com

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.

Powered by:

X