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.
  11 9242
Hei,

Har en del bilder av avisutklipp som jeg ønsker å endre filnavnene på. Filnavnene ser slik ut nå:

Avisnavn_YYYYMMDD_Kort-beskrivelse

Ønsker å endre de til:

YYYYMMDD_Avisnavn_Kort-beskrivelse

Regner med det finnes et genialt verktøy som fikser dette, men jeg har ikke funnet det blandt de 495 000 treffene på google.

Noen her som vet om et program som kan fungere?
Er Python et alternativ? Det er jo bare et par linjer med kode.
Kanskje advanced renamer kan gjøre susen?
Total Commander's Multi Rename Tool(ctrl-M) gjør nok susendusen.
Corey Schafer på YT har en video om akkurat dette om du vil bruke Python
python (eller neste generasjonen - ruby) egner seg vel ikke til sånt siden de er "objektorienterte" og ment for mer abstrakte oppgaver og ikke OS-level greier som filbehandling.

det beste her, forutenom de ferdigjalla programmene som blir nevnt, er å lage sitt eget shellscript. ikke bash som er rotete og full i sikkerhetshull, men noe a la zsh burde gjøre susen. blir oppgaven for tung pleier jeg å leie inn en eller annen fyr til en billig penge.

ser for meg et lite, vakkert og lett-å-forstå shellscript til den oppgaven du nevner.
Trigonoceps occipita
vidarlo's Avatar
Donor
Sitat av Leietaker Vis innlegg
python (eller neste generasjonen - ruby) egner seg vel ikke til sånt siden de er "objektorienterte" og ment for mer abstrakte oppgaver og ikke OS-level greier som filbehandling.
Vis hele sitatet...
Hæ?

Både python og ruby, som er to forskjellige språk; ikkje generasjoner, fungerer heilt utmerka til slikt. Les inn liste over filnavn, manipuler, kall os.rename()...

At begge språka er objektorienterte er irrelevant.
Sitat av Leietaker Vis innlegg
det beste her, forutenom de ferdigjalla programmene som blir nevnt, er å lage sitt eget shellscript. ikke bash som er rotete og full i sikkerhetshull, men noe a la zsh burde gjøre susen. blir oppgaven for tung pleier jeg å leie inn en eller annen fyr til en billig penge.
Vis hele sitatet...
Kva sikkerhetshol i bash er det som er relevante når du bruker det som eit shell?
Sånt gjør jeg rutinemessig i Delphi. Easy-peasy.
Sitat av ivar_oslo Vis innlegg
Sånt gjør jeg rutinemessig i Delphi. Easy-peasy.
Vis hele sitatet...
Dagens mest unyttige kommentar, du får dele koden da..
Sitat av Godless Vis innlegg
Total Commander's Multi Rename Tool(ctrl-M) gjør nok susendusen.
Vis hele sitatet...
Lastet ned og prøvde denne, men fant ikke noen funksjon for akkurat det jeg trengte. Mulig det er jeg som var litt utålmodig når jeg leste i dokumentasjonen.

Sitat av Tracy Vis innlegg
Kanskje advanced renamer kan gjøre susen?
Vis hele sitatet...
Takker for tipset, dette løste delvis problemet mitt. Brukte funksjonen "Swap", som bytter om ordene som står på hver sin side av et skilletegn.

Endte opp med formatet: YYYYMMDD_Kort beskrivelse_Avisnavn. Så nå kan jeg hvertfall sortere på dato.

Sitat av Realist1 Vis innlegg
Er Python et alternativ? Det er jo bare et par linjer med kode.
Vis hele sitatet...
Absolutt! Jeg har 0 erfaring med python, men har lenge vurdert å sjekke det ut. Har litt erfaring med VBA og Arduino. Nå har jeg et mål med læringen også.

Sitat av Tournesol Vis innlegg
Corey Schafer på YT har en video om akkurat dette om du vil bruke Python
Vis hele sitatet...
Takker for tips, skal se om jeg finner den videoen du sikter til.
Sitat av GreenRay Vis innlegg
Hei,

Har en del bilder av avisutklipp som jeg ønsker å endre filnavnene på. Filnavnene ser slik ut nå:

Avisnavn_YYYYMMDD_Kort-beskrivelse

Ønsker å endre de til:

YYYYMMDD_Avisnavn_Kort-beskrivelse

Regner med det finnes et genialt verktøy som fikser dette, men jeg har ikke funnet det blandt de 495 000 treffene på google.

Noen her som vet om et program som kan fungere?
Vis hele sitatet...
Hvis du har alle bildene samlet i en egen mappe som kun inneholder bilder med dette filnavnformatet, og ingenting annet, så kan du kjøre disse linjene med Python fra den mappen.

Forutsetter at det bare er understreker slik du har angitt (altså ikke understrek i avisnavn, f.eks. "verdens_gang" etc)
Og ikke prøv å kjøre den i mapper med andre filer, da kan du få mange rare filnavn.

Kode

import os

for f in os.listdir():
    f_name, f_ext = os.path.splitext(f)
    if f_ext not in ['.jpg', '.png']:
        continue

    try:
        avis, dato, descr = f_name.split('_')
        new_name = f'{dato}_{avis}_{descr}{f_ext}'
        os.rename(f, new_name)
    except:
        continue
Lagde en liten testmappe selv, med tre testbilder samt scriptet som jeg kalte rename.py. Slik ser det ut:


Sitat av GreenRay Vis innlegg
Takker for tips, skal se om jeg finner den videoen du sikter til.
Vis hele sitatet...
Dette er videoen han siktet til. Tittet på den da jeg skrev snutten over, jeg også.
Sist endret av Realist1; 16. august 2020 kl. 17:37. Grunn: Automatisk sammenslåing med etterfølgende innlegg.
I see you...
NAPse's Avatar
Dersom alle filene ligger i samme mappe kan du gjøre følgende;
SHIFT + Høyreklikk inne i mappa > "Open PowerShell window here" > og kjøre komandoen under.

Kode

ls | Rename-Item -NewName {$_ -replace '(.*)_(\d+)_(.*)\.(.*)', '$2_$1_$3.$4'}
EDIT: Det var nok allerede løst.
Sist endret av NAPse; 16. august 2020 kl. 18:04.