Auteur Topic: rename script (maar dan anders dan al gedaan is).  (gelezen 6086 keer)

Ben(V)

  • Gast
Re: rename script (maar dan anders dan al gedaan is).
« Reactie #15 Gepost op: 21 januari 2015, 09:40:47 »
Ok doen we het anders.
We lopen eerst bottom up door de directories om die te renamen en doen daarna alle files

Code: (python) [Selecteer]
print "*************************"
print "*  Renaming directories *"
print "*************************"
print""
for dirpath, dirnames, filenames in os.walk(path, topdown=False):
    for dirname in dirnames:
        newdirspecs = dirpath + '/' + replace_all(dirname,replacedict)
        olddirspecs = dirpath + '/' + dirname
        if newdirspecs != olddirspecs :
            #os.rename(olddirspecs, newdirspecs)
            print "Dir Rename: " + olddirspecs + ' --> ' + newdirspecs
        else:
            print "Dir Rename: " + olddirspecs +' --> Not renamed'
print ""
print "********************"
print "*  Renaming files  *"
print "********************"
print""

for dirpath, dirnames, filenames in os.walk(path):
    for filename in filenames:
        newfilespecs = dirpath + '/' + replace_all(filename,replacedict)
        oldfilespecs = dirpath + '/' + filename
        if newfilespecs != oldfilespecs :
            #os.rename(oldfilespecs, newfilespecs)
            print "File Rename: " + oldfilespecs + ' --> ' + newfilespecs
        else:
            print "File Rename: " + oldfilespecs +' --> Not renamed'


Offline zakhooi

  • Bedankjes
  • -Gegeven: 13
  • -Ontvangen: 1
  • Berichten: 182
Re: rename script (maar dan anders dan al gedaan is).
« Reactie #16 Gepost op: 21 januari 2015, 10:00:14 »
Dit lijkt te werken.
Zit er een limiet aan het aantal niveau's in directory diepte?

Ik denk dat dit meer CPU belastend is dan de bash rename die ik normaal gebruik.
Maar bij het ontbreken daarvan in Busybox lijkt me dit een mooi alternatief.
Het wordt echt interessant als ik 10000en files hiermee met 1 run wil renamen (ja dat doe ik soms).

Bednakt voro je hulp tot zover.
  • Mijn Synology: DS415play
  • HDD's: 2xWD20EFRX,1xWD40EFR

Ben(V)

  • Gast
Re: rename script (maar dan anders dan al gedaan is).
« Reactie #17 Gepost op: 21 januari 2015, 10:14:35 »
Dezelfde limiet die het OS heeft, want os.walk is een os call.
Daarom zal de overhead wel meevallen denk ik.
Python heeft iets overhead dus bij het opstarten ben je wat tijd kwijt, maar meer niet.

Als je echt zoveel gaat renamen zou het misschien verstandig zijn de output naar een file te sturen in plaats van naar de console.
Kun je het later nog eens terug kijken.

fp = open("filesspecs")
fp.write("hier tekst" + variable)

Offline zakhooi

  • Bedankjes
  • -Gegeven: 13
  • -Ontvangen: 1
  • Berichten: 182
Re: rename script (maar dan anders dan al gedaan is).
« Reactie #18 Gepost op: 21 januari 2015, 10:25:20 »
Ja daar kwam ik dus nu net achter (te laat) want ik kon niet ver genoeg terug scrollen.
Maar zo op het eerste gezicht lijkt het script gedaan te hebben wat ik wil.
Hartelijk dank voor je hulp.

PS: Is er een logische plek waar je eigen python scripts neer te zetten in DSM? Ik heb het nu in /usr/loca/bin gezet maar als je het vanuit python aan roept moet je sowieso het absolute pad opgeven.
  • Mijn Synology: DS415play
  • HDD's: 2xWD20EFRX,1xWD40EFR

Ben(V)

  • Gast
Re: rename script (maar dan anders dan al gedaan is).
« Reactie #19 Gepost op: 21 januari 2015, 11:25:32 »
Persoonlijk zet ik ze altijd op een share neer, dan kan ik er vanuit m'n PC makkelijk bij.

Offline Matr1x

  • Global Moderator
  • MVP
  • *
  • Bedankjes
  • -Gegeven: 270
  • -Ontvangen: 772
  • Berichten: 5.093
Re: rename script (maar dan anders dan al gedaan is).
« Reactie #20 Gepost op: 21 januari 2015, 22:23:29 »
Geweldige discussie hier. Ik kan geen nuttige informatie toevoegen, maar heb het wel met belangstelling gelezen.

Overigens gebruik ik zelf een PC programa RenameMaster als ik een reeks van bestanden volgens een bepaalde logica wil hernoemen. Dit is niet wat je zoekt, maar wel heel handig om bijvoorbeeld foto bestanden of documenten te hernoemen volgens met een logische naamgeving waarin bijvoorbeeld een datum of volgnummering moet zitten. Misschien hebben andere lezers die de Python oplossing te technisch vinden misschien iets aan.
  • Mijn Synology: DS224+
  • HDD's: 2x HAT3300-4T
  • Extra's: MR2200ac / RT2600ac

Ben(V)

  • Gast
Re: rename script (maar dan anders dan al gedaan is).
« Reactie #21 Gepost op: 21 januari 2015, 22:33:44 »
Ja voor een PC en in mindere mate voor MAC zijn ontzettend veel programmas te vinden.
Dan ga je zelf niet het wiel uitvinden.

Het leuke van Python is dat het overal op draait en je geen moeilijke dingen als compileren en linken moet doen voor je iets hebt dat draait.

Offline zakhooi

  • Bedankjes
  • -Gegeven: 13
  • -Ontvangen: 1
  • Berichten: 182
Re: rename script (maar dan anders dan al gedaan is).
« Reactie #22 Gepost op: 13 maart 2015, 10:40:10 »
Helaas werkt het script niet meer.
Ik vermoed dat het met een van de laaste firmware updates 'kapot' is gegaan.

Traceback (most recent call last):
  File "rename.py", line 9, in <module>
    os.rename(File, NewFileSpecs)
OSError: [Errno 18] Invalid cross-device link

Is dit op te lossen? Ik heb zelf helaas geen python kennis.....
  • Mijn Synology: DS415play
  • HDD's: 2xWD20EFRX,1xWD40EFR

Ben(V)

  • Gast
Re: rename script (maar dan anders dan al gedaan is).
« Reactie #23 Gepost op: 13 maart 2015, 12:34:25 »
Ik denk dat je probeert te renamen van het ene volume naar een ander volume.
Dat kan os.rename niet.

Je zou os.rename(File, NewFileSpecs) kunnen vervangen door
shutil.move(File, NewFileSpecs)

Wel even de eerste regel veranderen isn:
import os, shutil

Ander kan hij die module niet vinden.

Als dit niet de oplossing is moet je even het hele script hier posten dan kan ik er wat error afhandeling voor je inbouwen.

Offline zakhooi

  • Bedankjes
  • -Gegeven: 13
  • -Ontvangen: 1
  • Berichten: 182
Re: rename script (maar dan anders dan al gedaan is).
« Reactie #24 Gepost op: 13 maart 2015, 12:50:28 »
ik zie het al, ik had per ongeluk een oude versie gebruikt.
ik heb hem gelijk weggegooit.
Tja normaal heb ik een standaard dir voor mij actieve scripts maar goed daar hebben we het in dit draadje al over gehad.
Sorry voor het ongemak en bedankt voor de hulp.
  • Mijn Synology: DS415play
  • HDD's: 2xWD20EFRX,1xWD40EFR


 

Sonarr rename?

Gestart door ppeeters11Board Overige 3rd party packages

Reacties: 1
Gelezen: 903
Laatste bericht 15 februari 2017, 16:47:44
door proxydude
Folder rename

Gestart door rjozzieBoard SABnzbd (usenet)

Reacties: 2
Gelezen: 1606
Laatste bericht 15 augustus 2013, 12:52:05
door rjozzie
rename en clean

Gestart door stefsegersBoard Download Station

Reacties: 0
Gelezen: 993
Laatste bericht 26 juli 2016, 15:38:19
door stefsegers
Kan bij rename geen FROM en TO folder instellen.

Gestart door rjozzieBoard CouchPotato

Reacties: 3
Gelezen: 1937
Laatste bericht 09 juli 2013, 19:04:28
door TonVH
Hulp gevraagd: pytonscript om filenames om te draaien (reverse rename).

Gestart door zakhooiBoard Synology DSM 5.1 en eerder

Reacties: 20
Gelezen: 14297
Laatste bericht 17 maart 2016, 21:52:32
door Hutje