Auteur Topic: Hulp gevraagd: pytonscript om filenames om te draaien (reverse rename).  (gelezen 6201 keer)

Offline zakhooi

  • Bedankjes
  • -Gegeven: 12
  • -Ontvangen: 1
  • Berichten: 169
Hoi,

In navolging van mijn vorige vraag (http://www.synology-forum.nl/synology-dsm-5-1/rename-script-(maar-dan-anders-dan-al-gedaan-is)/msg144819/#msg144819) heb ik een andere vraag die er op lijkt.

Een pythonscript filenames in de current directory om draait en ze dus alszodanig renamed m.u.v. de file extentie.

Dus bijvoorbeeld.
abcdefghi.avi naar ihgfedcba,avi

Is er iemand die dit eenvoudig met python weet op te lossen of wordt het een ingewikkelde vraag?
  • Mijn Synology: DS415play
  • HDD's: 2xWD20EFRX,1xWD40EFR

Offline Ben(V)

  • MVP
  • *
  • Bedankjes
  • -Gegeven: 64
  • -Ontvangen: 1223
  • Berichten: 6.709
Re: Hulp gevraagd: pytonscript om filenames om te draaien (reverse rename).
« Reactie #1 Gepost op: 22 januari 2015, 16:27:02 »
Code: (python) [Selecteer]
import os

CurrentDir = os.getcwd()
for File in os.listdir(CurrentDir):
    Path, OriginalFileName = os.path.split(File)
    NamePart, Ext = os.path.splitext(OriginalFileName)
    NewFileSpecs = Path +'/'+ NamePart[::-1] + Ext
    os.rename(File, NewFileSpecs)
  • Mijn Synology: DS414
  • HDD's: 4 x 3TB WD30EFRX
  • Extra's: DS116

Offline zakhooi

  • Bedankjes
  • -Gegeven: 12
  • -Ontvangen: 1
  • Berichten: 169
Re: Hulp gevraagd: pytonscript om filenames om te draaien (reverse rename).
« Reactie #2 Gepost op: 22 januari 2015, 20:09:06 »
Hmmm, dat lijkt niet te werken.
Hoewel de persmissies goed staan (777) kunnen de files niet gerenamed worden:

Traceback (most recent call last):
  File "./rename.py", line 8, in <module>
    os.rename(File, NewFileSpecs)
OSError: [Errno 13] Permission denied
  • Mijn Synology: DS415play
  • HDD's: 2xWD20EFRX,1xWD40EFR

Offline Ben(V)

  • MVP
  • *
  • Bedankjes
  • -Gegeven: 64
  • -Ontvangen: 1223
  • Berichten: 6.709
Re: Hulp gevraagd: pytonscript om filenames om te draaien (reverse rename).
« Reactie #3 Gepost op: 22 januari 2015, 20:49:36 »
Sta je wel in de juiste directory?
vervang die os.rename regel eens door:
print FileName , " --> ", NewFileSpecs

Kun je zien wat hij probeert te doen.
  • Mijn Synology: DS414
  • HDD's: 4 x 3TB WD30EFRX
  • Extra's: DS116

Offline zakhooi

  • Bedankjes
  • -Gegeven: 12
  • -Ontvangen: 1
  • Berichten: 169
Re: Hulp gevraagd: pytonscript om filenames om te draaien (reverse rename).
« Reactie #4 Gepost op: 22 januari 2015, 21:10:31 »
De variabele 'FileName' is leeg.

Traceback (most recent call last):
  File "./rename.py", line 9, in <module>
    print FileName , " --> ", NewFileSpecs
NameError: name 'FileName' is not defined
  • Mijn Synology: DS415play
  • HDD's: 2xWD20EFRX,1xWD40EFR

Offline Ben(V)

  • MVP
  • *
  • Bedankjes
  • -Gegeven: 64
  • -Ontvangen: 1223
  • Berichten: 6.709
Re: Hulp gevraagd: pytonscript om filenames om te draaien (reverse rename).
« Reactie #5 Gepost op: 22 januari 2015, 21:16:26 »
Sorry moet natuurlijk File zijn
  • Mijn Synology: DS414
  • HDD's: 4 x 3TB WD30EFRX
  • Extra's: DS116

Offline zakhooi

  • Bedankjes
  • -Gegeven: 12
  • -Ontvangen: 1
  • Berichten: 169
Re: Hulp gevraagd: pytonscript om filenames om te draaien (reverse rename).
« Reactie #6 Gepost op: 22 januari 2015, 21:19:47 »
Raar, met een print werkt het wel

file_level_0  -->  /0_level_elif
level_0_dir_1  -->  /1_rid_0_level
level_0_dir_2  -->  /2_rid_0_level
renall.py  -->  /llaner.py
rename.py  -->  /emaner.py

Maar met os.rename krijg ik de eerder genoemde error (permission denied)
Alle rechten staan goed op alle files (777)
  • Mijn Synology: DS415play
  • HDD's: 2xWD20EFRX,1xWD40EFR

Offline Ben(V)

  • MVP
  • *
  • Bedankjes
  • -Gegeven: 64
  • -Ontvangen: 1223
  • Berichten: 6.709
Re: Hulp gevraagd: pytonscript om filenames om te draaien (reverse rename).
« Reactie #7 Gepost op: 22 januari 2015, 21:24:54 »
Denk niet dat je die bestanden wilt renamen.
Die rename.py wordt natuurlijk gelocked door python.

Ik zou eerst eens in de directorygaan staan waar de bestanden staan die je wilt renamen.
  • Mijn Synology: DS414
  • HDD's: 4 x 3TB WD30EFRX
  • Extra's: DS116

Offline zakhooi

  • Bedankjes
  • -Gegeven: 12
  • -Ontvangen: 1
  • Berichten: 169
Re: Hulp gevraagd: pytonscript om filenames om te draaien (reverse rename).
« Reactie #8 Gepost op: 22 januari 2015, 21:34:23 »
het werk nog steeds niet, misschien roep ik het verkeerd aan.
Wat ik doe:

Ik CD naar de directory waar de files staan die ik wil renamen.
Het rename.py script (jouw script dus) zet ik 1 niveau hoger en dan doe ik:

python ../rename.py
en vervolgens krijg ik de error:
Traceback (most recent call last):
  File "../rename.py", line 8, in <module>
    os.rename(File, NewFileSpecs)
OSError: [Errno 13] Permission denied
  • Mijn Synology: DS415play
  • HDD's: 2xWD20EFRX,1xWD40EFR

Offline Ben(V)

  • MVP
  • *
  • Bedankjes
  • -Gegeven: 64
  • -Ontvangen: 1223
  • Berichten: 6.709
Re: Hulp gevraagd: pytonscript om filenames om te draaien (reverse rename).
« Reactie #9 Gepost op: 22 januari 2015, 21:42:32 »
volgens mij doe jedan eencd naar die directory.
probeer het gewoon eens met de hele filespecs.
Dus python /volume1/....../rename,py

Je kunt ook de eerste regel van het script veranderen in een vast path waar de te renamenbestanden staan.
Dus:

CurrentDir = "/volume1/....."
  • Mijn Synology: DS414
  • HDD's: 4 x 3TB WD30EFRX
  • Extra's: DS116

Offline zakhooi

  • Bedankjes
  • -Gegeven: 12
  • -Ontvangen: 1
  • Berichten: 169
Re: Hulp gevraagd: pytonscript om filenames om te draaien (reverse rename).
« Reactie #10 Gepost op: 23 januari 2015, 05:53:14 »
Zelfs dan hou ik hetzelfde probleem.
Ik snap niet waar die permission denied vandaan komt.
  • Mijn Synology: DS415play
  • HDD's: 2xWD20EFRX,1xWD40EFR

Offline zakhooi

  • Bedankjes
  • -Gegeven: 12
  • -Ontvangen: 1
  • Berichten: 169
Re: Hulp gevraagd: pytonscript om filenames om te draaien (reverse rename).
« Reactie #11 Gepost op: 23 januari 2015, 10:14:30 »
Die tests heb ik trouwens op een linuxbak gedaan.
Als ik het op de NAS tests krijg ik ook een error maar dan een iets andere melding:

Traceback (most recent call last):
  File "./reverse.py", line 9, in <module>
    os.rename(File, NewFileSpecs)
OSError: [Errno 18] Invalid cross-device link
  • Mijn Synology: DS415play
  • HDD's: 2xWD20EFRX,1xWD40EFR

Offline Ben(V)

  • MVP
  • *
  • Bedankjes
  • -Gegeven: 64
  • -Ontvangen: 1223
  • Berichten: 6.709
Re: Hulp gevraagd: pytonscript om filenames om te draaien (reverse rename).
« Reactie #12 Gepost op: 23 januari 2015, 10:31:47 »
Was gisteren er niet helemaal bij geloof ik.
Het probleen is dat de functie os.listdir niet de volledige filespecs oplevert maar alleen de filenaam.
Hier is de code die wel moet werken.
Ik heb je regel waar de echte rename gebeurt nog even een # voor gezet zodat je eerst kunt testen.

Code: (python) [Selecteer]
Path = os.getcwd()
for File in os.listdir(Path):
    NamePart, Ext = os.path.splitext(File)
    NewFileSpecs = Path +'/'+ NamePart[::-1] + Ext
    OldFileSpecs = Path +'/'+ File + Ext
    #os.rename(OldFileSpecs, NewFileSpecs)
    print OldFileSpecs + " --> " + NewFileSpecs
  • Mijn Synology: DS414
  • HDD's: 4 x 3TB WD30EFRX
  • Extra's: DS116

Offline zakhooi

  • Bedankjes
  • -Gegeven: 12
  • -Ontvangen: 1
  • Berichten: 169
Re: Hulp gevraagd: pytonscript om filenames om te draaien (reverse rename).
« Reactie #13 Gepost op: 23 januari 2015, 10:43:57 »
Bedankt voor de aanpassing.
Echter, met de print regel gaat het goed (output geeft precies het juiste weer).
Maar met os.rename gaat het fout:

Traceback (most recent call last):
  File "../reverse.py", line 8, in <module>
    os.rename(OldFileSpecs, NewFileSpecs)
OSError: [Errno 2] No such file or directory
  • Mijn Synology: DS415play
  • HDD's: 2xWD20EFRX,1xWD40EFR

Offline zakhooi

  • Bedankjes
  • -Gegeven: 12
  • -Ontvangen: 1
  • Berichten: 169
Re: Hulp gevraagd: pytonscript om filenames om te draaien (reverse rename).
« Reactie #14 Gepost op: 23 januari 2015, 11:02:01 »
Ik zie het al. Er zat een fout in.
Dit werkt:

import os

Path = os.getcwd()
for File in os.listdir(Path):
    NamePart, Ext = os.path.splitext(File)
    NewFileSpecs = Path +'/'+ NamePart[::-1] + Ext
    OldFileSpecs = Path +'/'+ File
    print OldFileSpecs + " --> " + NewFileSpecs
    os.rename(OldFileSpecs, NewFileSpecs)

Old file specs stond '+ ext' te veel
  • Mijn Synology: DS415play
  • HDD's: 2xWD20EFRX,1xWD40EFR


 

Mail server en Mail station hulp

Gestart door F1OnlineBoard Mail Station

Reacties: 3
Gelezen: 2199
Laatste bericht 12 september 2012, 14:34:14
door rjong5
OpenVPN hulp bij script t.b.v. tls-verify/auth-user-pass-verify

Gestart door MMDBoard Overige mods

Reacties: 7
Gelezen: 3691
Laatste bericht 06 oktober 2015, 17:48:24
door MMD
Hulp nodig , DS1817+ niet meer benaderbaar ook niet via Assistant (opgelost)

Gestart door cbr600f4iBoard NAS hardware vragen

Reacties: 12
Gelezen: 438
Laatste bericht 11 juni 2017, 16:54:41
door cbr600f4i
hulp om audio station zichtbaar te krijgen op media server Panosonic Viera GT60

Gestart door geBoard Audio Station

Reacties: 1
Gelezen: 1556
Laatste bericht 13 mei 2014, 10:09:44
door Goner
visualstation VS60 VS80 zwart beeld word niet ondersteund hulp gevraagt

Gestart door marcelxxxxxBoard Synology DSM algemeen

Reacties: 20
Gelezen: 4204
Laatste bericht 20 februari 2015, 21:57:47
door marcelxxxxx
Synology-Forum.nl is een Nederlands gebruikersforum en staat volledig los van het merk Synology.