Esiste un semplice script per duplicare i file in una nuova cartella basata su un file csv?

2

La nostra sfida è che dobbiamo cercare e duplicare circa 3000 immagini in una nuova cartella.

L'elenco di nomi di immagini è un file CSV. I file sono tutti su una sola unità, ma in molte cartelle diverse.

    
posta midwest design firm 26.08.2014 - 20:37
fonte

3 risposte

3

Utilizzo di Bash:

#!/bin/bash

cat /path/to/file.csv | while IFS=, read col1 col2 col3
do
    find . -path "$col1" -exec cp {} /DESIRED/DIRECTORY \;
done
  • IFS è il separatore del campo di input. Dichiara come , per .csv .
  • find . -path cerca in modo ricorsivo nella tua home directory i nomi leggi da col1 , restituendo il percorso completo.
  • exec esegue il comando cp su {} , che rappresenta tutti i risultati find restituisce
  • i file vengono copiati in /DESIRED/DIRECTORY e \; è richiesto per terminare il comando exec
risposta data 27.08.2014 - 18:46
fonte
1

Ecco un semplice script python che farà il trucco:

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,";"])

Impostare csv_path, search_path e output_path di conseguenza. Si tratta di un qualsiasi formato CSV in remoto standard, dovrebbe essere in grado di rilevarlo automaticamente. Il CSV non dovrebbe avere righe di intestazione ed è necessario impostare line[0] sul numero della colonna contenente i nomi dei file (a partire da 0 per la prima colonna).

    
risposta data 27.08.2014 - 21:52
fonte
0

Vorrei utilizzare applescript .

Apri il file csv in excel e carica i file, quindi passa la variabile al terminale dove eseguirai un comando find seguito da un comando copy nella directory di tua scelta.

Ecco alcuni suggerimenti:

Passa attraverso il csv.

    
risposta data 27.08.2014 - 17:37
fonte

Leggi altre domande sui tag