Pregunta

Estoy tratando de cambiar el nombre de algunos archivos, pero conseguir un error incomprensible *. Cuando ejecuto esto:

if os.path.isfile(fullPath):
    print 'fmf exists'
    print fullPath
    print newFilePath
    os.rename(fullPath,newFilePath)

Me sale el siguiente error:

fmf exists
(correct fullPath)
(correct newFilePath, ie. destination)
Traceback (most recent call last):
  File "whatever.py", line 374, in ?
    os.rename(fullPath,newFilePath)
OSError: [Errno 2] No such file or directory

Desde que saber que el archivo existe en fullPath, Estoy desconcertado por el error. Por supuesto, newFilePath no existe, porque eso sería tonto. ¿Alguna pista?

Gracias! Alex

* ¿No son todos ellos?

¿Fue útil?

Solución

Usted todavía puede obtener la excepción si se intenta copiar a un directorio que no existe.

Otros consejos

No se puede ver el funcionamiento interno de pleno derecho de su código, así que aquí está mi dos centavos:

Su newFilePath puede contener un directorio que no existe. Si ese es el caso, entonces dependiendo de su sistema operativo, el programa no puede crear un archivo en un directorio que no existe. Eso podría ser su error.

Espero que esto ayude

Parece que el cartel resuelto su problema, pero no tenía el mismo síntoma y la causa que parecía ser diferente. El archivo estaba tratando de cambiar el nombre acababa de ser creado en una llamada de subproceso en la línea anterior. Si me encontré con mi script de nuevo, yo no tenía el problema de cambio de nombre, ya que el archivo se ha creado en la ejecución anterior, pero si he eliminado el archivo creado anteriormente, me gustaría tener el mismo problema con el cambio de nombre. Parece que os.rename estaba recibiendo llamados antes de terminar el subproceso y el archivo cuyo nombre desea cambiar, por tanto, no existía todavía. He insertado una os.wait () después de la llamada sub-proceso, y creo que esto ha solucionado mi problema.

Yo tenía el mismo error cuando mi nuevo nombre de archivo contenía barras diagonales, que se confunden con los separadores de directorio en Unix y Linux. Por ejemplo, cambiar el nombre de un archivo de clientes potenciales "4/27 / 2015.txt" en un directorio que no existe y resulta en "No existe el fichero o directorio". Puede resolver este mediante la sustitución de las barras diagonales con cualquier otro carácter aceptable.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top