I have many files with a specific extension in a folder and what I want is to change the extension to another one (associated to a special executable program for those files), I have this advanced code.
import glob, os, shutil, os, errno, sys
import subprocess
from glob import glob
from os import getcwd
from os.path import join
from os.path import basename
from subprocess import call
camino = 'C:\\Users\\user\\Desktop\\Dats\\COX\\'
listado = glob(join(camino,'D*','20*','B*','1*'))
for archivo in listado:
tmp = os.path.split(archivo)
path = tmp[0]
log = archivo
estacion = os.path.basename(tmp[0])
try:
print (path)
os.chdir(path)
subprocess.call(['C:\\Users\\user\\Desktop\\Dats\\rt_mseed.exe', log]) #programa .exe para pasar los archivos a la extensión en especifico
except OSError as e:
if e.errno == errno.ENOTDIR:
print ('error')
else:
print ('Error: %s' % e)
When I run it, it shows me the following error:
C:\Users\user\Desktop\Dats\python listado.py
C:\Users\user\Desktop\Dats\COX\DISK1\2014322\B088
Error: [Error 2] The system cannot find the file specified
C:\Users\user\Desktop\Dats\COX\DISK1\2014323\B088
Error: [Error 2] The system cannot find the file specified
C:\Users\user\Desktop\Dats\COX\DISK1\2014324\B088
Error: [Error 2] The system cannot find the file specified
C:\Users\user\Desktop\Dats\COX\DISK1\2014325\B088
Error: [Error 2] The system cannot find the file specified
C:\Users\user\Desktop\Dats\COX\DISK1\2014326\B088
Error: [Error 2] The system cannot find the file specified
I think you should assign
camino
BEFORE thejoin(...)
and instead of using
getcwd()
you should use that variablecamino
In this way you will be indicating that those files look for them in the
camino
indicatedIt would look like this: