Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  10 1480
Hei og hopp! Jeg har et wave-player device som kun leser av filer med spesifikke filnavn (P1, P2, P3 osv). Vet noen her om en enkel måte jeg kan rename 35 utvalgte filer til denne navnerekken? Jeg vet det finnes endel renaming-programmer der ute, men har ikke funnet et enkelt ett som kan gjøre denne lille operasjonen. Jeg skal lage flere sett a 35 filer, derfor hadde det vært greit med å en måte å automatisere dette.

Noen som har tips om en grei måte å gjøre dette på? Bruker Windows 7.
Sist endret av AnaMorph0s|s; 18. juni 2015 kl. 12:52.
Sur og sarkastisk
droppboks's Avatar
Legg de i en mappe og få ett batchscript til å loope mappen og rename dem?

Kode

setlocal enableextensions enabledelayedexpansion
set /a x=0
for /r "./mappenavn" %%G in (*) do (
	set /a x+=1
	copy "%%G" "%USERPROFILE%\Desktop\NYMAPPE\P!x!.wav"
)
pause
Dette er ett batch script jeg faktisk har brukt til akkurat dette (slightly modifisert nå, men burde funke, håper vi).

Kopierer filene i mappen "mappenavn" relativt til batchfilen til "NYMAPPE" på skrivebordet ditt (husk å lag mappen) som P[nummer].wav. Antok at wave-player betydde wav, men om det er feil, så bare legg på riktig filextension.
Med Python,og slippe unna Batch er alltid positivt

Kode

import os, glob

for number,f_name in enumerate(glob.glob('*wav'), 1):
    os.rename(f_name, 'P{}.txt'.format(number))
Kjør koden i mappen med filer som skal ha nytt navn,
finner all wav filer,og renamer til P1.wav,P2wav,......
retningspels
AnaMorph0s|s's Avatar
Trådstarter
Takk for forslag, folkens! Knallbra. Kan veldig lite om programmering, så får prøve å finne ut av hvordan jeg skal gjøre dette. Hvordan angir jeg hvilken mappe Python skal kjøre scriptet i, for eksempel? Det skal sies at filnavnene skal være;

P1, P2 -> (til og med) P9
PA, PB -> (til og med) PZ

... så kanskje noe av koden dere foreslår vil måtte være litt annerledes?

Hjertelig takk, folkens, setter veldig pris på hjelp til dette.
Advanced Renamer bruker jeg, veldig greit !
... så kanskje noe av koden dere foreslår vil måtte være litt annerledes?
Vis hele sitatet...
Den må nok være litt annerledes
Last ned Python 3.5 er beta ennå,
men gjør det litt lettere for Windows brukere.
Husk og merke av Add_python3.5 to path.

Da kan du kjøre koden fra kommando linje(cmd) eller IDLE.
Fra IDLE File-->New File
Lim inn koden(lagre med .py endelse).
Run-->Run Module(F5)

Kode

import os, glob
from string import ascii_uppercase

path = 'C:/your_folder/'
for number,f_name in enumerate(glob.glob('{}*wav'.format(path)), 1):
    if number <= 9:        
        os.rename(f_name, 'P{}.wav'.format(number))
    else:        
        try:
            os.rename(f_name, 'P{}.wav'.format(ascii_uppercase[number-10]))
        except IndexError:
            pass
Sist endret av snippsat; 18. juni 2015 kl. 16:50.
retningspels
AnaMorph0s|s's Avatar
Trådstarter
Hjertelig takk! Har prøvd å kjøre scriptet nå, men får en syntax-error når jeg gjør det.



Det antydes vel at det er noe galt med denne linjen;

Kode

path ='C:\Users\ESM\Documents\rename'
... men jeg er ikke sikker på hva. Vet du?

Edit - endra på slashene, så de går andre veien, / (jeg hadde bare brukt "copy path" fra Windows). Får ikke opp noen feilmelding når jeg kjører denne modulen, ser ut som om den går, men ingenting skjer med filnavnene.
Sist endret av AnaMorph0s|s; 19. juni 2015 kl. 10:28.
Jeg glemte os.path.join.
Se på path og husk og ha med C:/test/
når du angir folder.
Da blir det sånn.

Kode

import os, glob
from string import ascii_uppercase

path = 'C:/test/'
for number,f_name in enumerate(glob.glob('{}*txt'.format(path)), 1):
    if number <= 9:
        os.rename(f_name, os.path.join(path, 'P{}.txt'.format(number)))
    else:
        try:
            os.rename(f_name, os.path.join(path, 'P{}.txt'.format(ascii_uppercase[number-10])))
        except IndexError:
            pass
retningspels
AnaMorph0s|s's Avatar
Trådstarter
Hjertelig takk! Prøvde ut programmet mo66y tipset om ovenfor, og i det var det en funksjon som var akkurat det jeg var ute etter. Enda enklere enn python-script, så det er gull!

Hjertelig takk for hjelpen, alle sammen, setter stor pris på det. Freak, altså, gode greier.
NOOOOOOOOOOOOOOOOOO-
robhol's Avatar
Dårlig eksempel på "padding" av tall.
Gjør:

Kode

"P{:02d}.wav".format(n)
Dårlig eksempel på "padding" av tall.
Vis hele sitatet...
Nå var 9 maks før det skifter til bokstaver,
hadde selvfølgelig brukt metoden viss det skulle telles lengre.