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

Offline zakhooi

  • Bedankjes
  • -Gegeven: 13
  • -Ontvangen: 1
  • Berichten: 182
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

Ben(V)

  • Gast
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)

Offline zakhooi

  • Bedankjes
  • -Gegeven: 13
  • -Ontvangen: 1
  • Berichten: 182
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

Ben(V)

  • Gast
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.

Offline zakhooi

  • Bedankjes
  • -Gegeven: 13
  • -Ontvangen: 1
  • Berichten: 182
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

Ben(V)

  • Gast
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

Offline zakhooi

  • Bedankjes
  • -Gegeven: 13
  • -Ontvangen: 1
  • Berichten: 182
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

Ben(V)

  • Gast
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.

Offline zakhooi

  • Bedankjes
  • -Gegeven: 13
  • -Ontvangen: 1
  • Berichten: 182
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

Ben(V)

  • Gast
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/....."

Offline zakhooi

  • Bedankjes
  • -Gegeven: 13
  • -Ontvangen: 1
  • Berichten: 182
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: 13
  • -Ontvangen: 1
  • Berichten: 182
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

Ben(V)

  • Gast
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

Offline zakhooi

  • Bedankjes
  • -Gegeven: 13
  • -Ontvangen: 1
  • Berichten: 182
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: 13
  • -Ontvangen: 1
  • Berichten: 182
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


 

expert en hulp gezocht

Gestart door petje74Board The lounge

Reacties: 8
Gelezen: 2342
Laatste bericht 30 december 2016, 10:54:43
door petje74
Hulp gezocht

Gestart door arneBoard Synology DSM algemeen

Reacties: 16
Gelezen: 8791
Laatste bericht 08 mei 2013, 12:52:10
door Briolet
Hulp voor backup bij versturen factuur

Gestart door melliemvdgBoard Synology DSM algemeen

Reacties: 7
Gelezen: 824
Laatste bericht 18 juni 2022, 18:51:14
door melliemvdg
hulp bij installatie in Amsterdam

Gestart door bartjanjBoard The lounge

Reacties: 7
Gelezen: 4267
Laatste bericht 03 november 2011, 18:16:53
door Nelesss
Hulp bij instellen DS214SE

Gestart door NuenasBoard Synology DSM algemeen

Reacties: 1
Gelezen: 1821
Laatste bericht 03 december 2014, 16:06:34
door cyrus1977