7
votes

Exécuter un script Python sur tous les fichiers d'un répertoire

J'ai un script Python qui lit via un fichier CSV texte et crée un fichier de liste de lecture. Cependant, je ne peux en faire qu'un à la fois, comme: xxx

Cependant, j'ai un répertoire de fichiers à apporter dans une liste de lecture, avec des noms différents, et parfois un nombre différent de Fichiers.

Jusqu'à présent, j'ai consulté la création d'un fichier TXT avec une liste de tous les noms du fichier dans le répertoire, puis bouclez chaque ligne de celle-ci, mais je sais qu'il doit y avoir un moyen plus facile. Pour le faire.


3 commentaires

Et quelques fois, il y a plus que des overs Qu'est-ce que cela signifie?


@davr; Pourquoi as-tu retiré la balise Bash, peut-être qu'il veut l'utiliser?


Désolé, j'avais l'étiquette Bash, alors que j'essayais de le faire à Bash, comme étant fini, je veux mettre un front de cacao pour Bash. Le hack à bas prix que j'ai utilisé à partir de fichiers texte était également à BASH.


4 Réponses :


10
votes
for f in *.csv; do
  python playlist.py "$f" "${f%.csv}list.txt"
done
Will that do the trick? This will put foo.csv in foolist.txt and abc.csv in abclist.txt.Or do you want them all in the same file?

0 commentaires

2
votes

Si vous avez un nom de répertoire, vous pouvez utiliser os.listdir < / code> xxx

Si vous souhaitez sélectionner uniquement un certain type de fichier, seul le fichier CSV que vous pouvez utiliser glob module.


1 commentaires

ou juste utiliser '.' En tant que nom de répertoire?



6
votes

Utilisez simplement A pour boucle avec l'astérisque GLOB, en vous assurant de citer les choses de manière appropriée pour des espaces dans des noms de fichiers xxx


0 commentaires

4
votes

est-ce un répertoire unique ou imbriqué?

ex. xxx

pour imbriqué, vous pouvez utiliser os.walk (topdir) Pour obtenir tous les fichiers et réalisateurs de récursives dans un répertoire.

Vous pouvez configurer votre script pour accepter les DIRS ou les fichiers:

python playlist.py topfile.csv topdir xxx


1 commentaires

Je vais essayer cela un essai trop merci, c'est un peu capricieux le script tel qu'il est