2 votes

Existe-t-il un script simple pour dupliquer des fichiers dans un nouveau dossier sur la base d'un fichier csv ?

Notre défi est de rechercher et de dupliquer environ 3000 images dans un nouveau dossier.

La liste des noms d'images est un fichier csv. Les fichiers sont tous sur un seul disque, mais dans plusieurs dossiers différents.

3voto

njboot Points 8005

En utilisant Bash :

#!/bin/bash

cat /path/to/file.csv | while IFS=, read col1 col2 col3
do
    find . -path "$col1" -exec cp {} /DESIRED/DIRECTORY \;
done
  • IFS est le séparateur de champs d'entrée. Déclarer comme , pour .csv .
  • find . -path recherche les noms dans votre répertoire personnel de manière récursive lus à partir de col1 en retournant le chemin complet.
  • exec exécute le cp sur {} qui représente tous les résultats find renvoie à
  • les fichiers sont copiés sur /DESIRED/DIRECTORY y \; est nécessaire pour terminer le exec commande

1voto

Voici un simple script Python qui fera l'affaire :

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

Définissez csv_path, search_path, et output_path en conséquence. S'il s'agit d'un format CSV standard à distance, il devrait être capable de le détecter automatiquement. line[0] au numéro de la colonne contenant les noms de fichiers (en commençant par 0 pour la première colonne).

0voto

maxpenguin Points 1488

J'utiliserais applescript .

Ouvrez le fichier csv dans Excel, récupérez les fichiers, puis passez la variable au terminal où vous exécuteriez une commande find suivi d'une commande copy dans le répertoire de votre choix.

Voici quelques conseils :

Boucle à travers le csv.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X