Dis que j'ai les fichiers suivants: p>
Maintenant, je veux ajouter une constante Y a-t-il un bon script Python pour cela? Le script Linux Bash va aussi bien s'il est plus facile. P> file1900.txt File1901.txt File1902.txt ... File1998.txt File1998.txt File1999.txt File0.txt File1.txt File2.txt File3.txt ... File19.txt fichier20.txt code> < / p>
2000 code> à tous les fichiers où les numéros inclus dans le nom de fichier sont inférieurs à 1900 code>. Vous trouverez ci-dessous comment je souhaite renommer ces fichiers: p>
file1900.txt File1901.txt File1902.txt ... File1998.txt File1998.txt File2000.txt File2001.txt File2002.txt File2003.txt ... File2019.txt Code> < / p>
3 Réponses :
Ce script python suivant utilise une expression régulière pour correspondre au modèle général que vous avez fourni, avec le numéro dans un groupe correspondant.
Si le numéro est inférieur à 1900, il ajoute A 2000 à celui-ci puis appelle OS.Rename code> Pour renommer le fichier. P> import re
import os
expression = re.compile(r'file(\d+)\.txt')
for item in os.scandir():
if item.is_file():
match = expression.match(item.name)
if match:
num = int(match.group(1))
if num < 1900:
num += 2000
new_name = f"file{num}.txt"
os.rename(item.name, new_name)
Vous pouvez le faire de cette façon dans Bash.
Si votre exigence vient de travailler avec des "années" dans les noms de fichiers, il peut être logique d'ajouter 2000 seulement à un numéro inférieur à 1000.
Dans ce cas, vous pouvez simplement utiliser le linux renommer code> Commande avec Perl Regex: P> fichier? .txt fichier ??. fichier txt ???. txt code> appliquer renommé uniquement sur fichiers fichier0.txt , ... file10.txt, ... file999.txt p> (\ d {1,3}) (\. TXT) code> - attrape tout un / deux / trois Numéros de chiffres avant ".txt" p> ($ 1 + 2000). $ 2 code> - remplace les numéros trouvés ($ 1) par "Numéro + 2000" et rejoute le CATCHE ". txt "(2 $) p> p>
Quel est le problème, exactement? Avez-vous essayé quelque chose, effectué des recherches? Overflow de pile n'est pas un service de rédaction de code gratuit. Voir: Tour , Comment demander < / a>, centre d'aide , meta.stactverflow.com/questions/261592/... .
Une approche à Bash serait de boucler sur les chiffres de 0 à 1899, et si un fichier existe qui est nommé
"fichier" + numéro + ".txt" code>, puis renommez-le sur" Fichier "+ (numéro + 2000) +" .txt " code>.