I need to simply add the word "_Manual" onto the end of all the files i have in a specific directory Here is the script i am using at the moment - i have no experience with python so this script is a frankenstine of other scripts i had lying around!
It doesn't give any error messages but it also doesnt work..
folder = "C:\Documents and Settings\DuffA\Bureaublad\test"
import os, glob
for root, dirs, filenames in os.walk(folder):
for filename in filenames:
filename_split = os.path.splitext(filename) # filename and extensionname (extension in [1])
filename_zero = filename_split[0]
os.rename(filename_zero, filename_zero + "_manual")
I am now using
folder = "C:\Documents and Settings\DuffA\Bureaublad\test"
import os # glob is unnecessary
for root, dirs, filenames in os.walk(folder):
for filename in filenames:
fullpath = os.path.join(root, filename)
filename_split = os.path.splitext(fullpath) # filename and extensionname (extension in [1])
filename_zero, fileext = filename_split
print fullpath, filename_zero + "_manual" + fileext
os.rename(fullpath, filename_zero + "_manual" + fileext)
but it still doesnt work.. it doesnt print anything and nothing gets changed in the folder!
you should add a control in your code, to verify that the filename to rename hasn't already '_manual' in its string name
os.rename
requires a source and destination filename. The variablefilename
contains your current filename (e.g., "something.txt"), whereas your split separates that intosomething
andtxt
. As the source file to rename, you then only specifysomething
, which fails silently.Instead, you want to rename the file given in
filename
, but as you walk into subfolders as well, you need to make sure to use the absolute path. For this you can useos.path.join(root, filename)
.So in the end you get something like this:
This would rename
dir1/something.txt
intodir1/something_manual.txt
.In your code, you are trying to rename
filename_zero
, which is the filename without extension and therefore does not exist as a real path. You have to specify the full path toos.rename
like above.I. e. it does nothing? Let's see:
might do the trick, as you have to work with the full path. but I don't understand why there was no exception when the files could not be found...
EDIT to put the change to a more prominent place:
You as well seem to have your path wrong.
Use
to prevent that the
\t
is turned into a tab character.