I'm trying to rename all the pictures in a directory. I need to add a couple of pre-pending zero's to the filename. I'm new to Python and I have written the following script.
import os
path = "c:\\tmp"
dirList = os.listdir(path)
for fname in dirList:
fileName = os.path.splitext(fname)[0]
fileName = "00" + fname
os.rename(fname, fileName)
#print(fileName)
The commented print line was just to verify I was on the right track. When I run this I get the following error and I am at a loss how to resolve it.
Traceback (most recent call last): File "C:\Python32\Code\add_zeros_to_std_imgs.py", line 15, in os.rename(fname, fileName) WindowsError: [Error 2] The system cannot find the file specified
Any help is greatly appreciated. Thnx.
Run CHKDSK Command to Fix "System Cannot Find File Specified" Device. Right-click the Start button, type cmd in the Search, and select Command Prompt (Admin). Type chkdsk x: /f /r (x represents your target drive) into the Command Prompt window and press Enter Wait while chkdsk tries to repair the corrupted file systems ...
The Python "FileNotFoundError: [Errno 2] No such file or directory" occurs when we try to open a file that doesn't exist in the specified location. To solve the error, move the file to the directory where the Python script is located if using a local path, or use an absolute path.
You should pass the absolute path to os.rename
. Right now your only passing the filename itself. It isn't looking in the correct place. Use os.path.join
.
Try this:
import os
path = "c:\\tmp"
dirList = os.listdir(path)
for fname in dirList:
fileName = os.path.splitext(fname)[0]
fileName = "00" + fname
os.rename(os.path.join(path, fname), os.path.join(path, fileName))
#print(fileName)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With