Gå til innhold

"Rename" i DOS eller liknende program.


Anbefalte innlegg

Trenger en forklaring på hvordan jeg skal gå frem for å gi nytt navn til en lang liste filer:

 

Eks:

 

Bilde (1).jpg -> Bilde0001.jpg

Bilde (2).jpg -> Bilde0002.jpg

 

...

 

Bilde (9).jpg -> Bilde0009.jpg

Bilde (10).jpg -> Bilde0010.jpg

 

...

 

osv

 

 

 

cmd sorter ikke korrekt ellers. Vedlagt bilde forklarer bedre.

 

Har lekt meg litt med ren kommandoen, men blir ikke klok nok til å løse dette problemet. :hmm:

post-121330-1272309052,7747_thumb.png

Lenke til kommentar
Videoannonse
Annonse

Satt sammen noe i python du kan se på.

Skulle gjør det du ønsker.

 

import re, os 

def file_change(input_ext, input_name): 
   ''' 
   Change all file name based on file extensions 
   Run from folder with your files 
   Eksp output bilde0001.jpg, bilde0002.jpg..o.s.v 
   ''' 
   fil_extension = input_ext 
   change = re.compile(fil_extension) 
   new_name = input_name 
   var1 = 0 
   for file_name in os.listdir(os.getcwd()): 
       name_ok = re.compile(fil_extension).match 
       if name_ok(file_name):         
           var1 += 1 
           var3 = os.path.splitext(file_name) 
           var2 = (new_name + str(var1) + var3[1]) 
           os.rename(file_name, var2)             

file_change('.*jpg', 'bilde000')

Lenke til kommentar

cmd sorter ikke korrekt ellers. Vedlagt bilde forklarer bedre.

CMD sorterer ikke. CMD er et komanndovindu. Og viser ingenting. men DIR-komandoen sorterer etter det du spesifiserer. Dir /on sorterer på navn, Dir /od på dato. I ditt vedlagte bilde er filnavnene sortert alfabetisk. Det betyr at (1)* kommer foran (10)*.

 

I ditt bildet har du et antall txt-filer som alle er tomme (null bytes) men er korrekt sortert.

 

rREN-kommandoen kan endre filnavn på xfiler med navn (1).txt; (10).xt etc til f.eks. bild(1).txt; bild(10).txt etc:

ren (*.txt bild(*.txt

Lenke til kommentar

Satt sammen noe i python du kan se på.

Skulle gjør det du ønsker.

 

import re, os 

def file_change(input_ext, input_name): 
   ''' 
   Change all file name based on file extensions 
   Run from folder with your files 
   Eksp output bilde0001.jpg, bilde0002.jpg..o.s.v 
   ''' 
   fil_extension = input_ext 
   change = re.compile(fil_extension) 
   new_name = input_name 
   var1 = 0 
   for file_name in os.listdir(os.getcwd()): 
       name_ok = re.compile(fil_extension).match 
       if name_ok(file_name):         
           var1 += 1 
           var3 = os.path.splitext(file_name) 
           var2 = (new_name + str(var1) + var3[1]) 
           os.rename(file_name, var2)             

file_change('.*jpg', 'bilde000')

Den der navngir vel ikke riktig, med mindre os.listdir returnerer en sortert liste?

Ikke at det nødvendigvis spiller noen rolle for trådstarter... Men dersom det ikke er viktig, kan dette gjøres mye enklere med cmd.

Lenke til kommentar

Det kan fikse sånn.

for file_name in sorted(os.listdir(os.getcwd())): 

Det virket når teset første gangen,nå testet jeg ikke med så mange filer.

 

Da ble det sånn.

Bilde (1).jpg -> Bilde0001.jpg

Bilde (2).jpg -> Bilde0002.jpg

 

Men dersom det ikke er viktig, kan dette gjøres mye enklere med cmd.

Ja dette er jo en oppgave som sikkert kan løses i batch.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...