Вопрос

Я пытаюсь переименовать некоторые файлы, но получаю непонятную ошибку*.Когда я запускаю это:

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

Я получаю следующую ошибку:

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

Так как я знать что файл по адресу FullPath существует, меня сбивает с толку эта ошибка.Конечно, newFilePath не существует, потому что это было бы глупо.Есть какие-нибудь подсказки?

Спасибо!Алекс

*Разве они не все?

Это было полезно?

Решение

Вы все равно можете получить исключение, если попытаетесь скопировать в несуществующий каталог.

Другие советы

Я не вижу всей внутренней работы вашего кода, так что вот мои два цента:

Ваш newFilePath может содержать несуществующий каталог.Если это так, то в зависимости от вашей операционной системы ваша программа не сможет создать файл в несуществующем каталоге.Это может быть вашей ошибкой.

Надеюсь это поможет

Кажется, что плакат решил его проблему, но у меня был тот же симптом, а причина оказалась другой.Файл, который я пытался переименовать, только что был создан в вызове подпроцесса в предыдущей строке.Если бы я запустил свой сценарий еще раз, у меня не возникло бы проблемы с переименованием, поскольку файл был создан при предыдущем запуске, но если бы я удалил ранее созданный файл, у меня возникла бы та же проблема с переименованием.Похоже, что os.rename вызывался до завершения подпроцесса, и поэтому файл, который нужно переименовать, еще не существовал.Я вставил os.wait() после вызова подпроцесса и считаю, что это решило мою проблему.

У меня была такая же ошибка, когда мое новое имя файла содержало косую черту, которую путают с разделителями каталогов в Unix и Linux.Например, переименование файла в «27.04.2015.txt» приводит к созданию несуществующего каталога и приводит к сообщению «Нет такого файла или каталога».Вы можете решить эту проблему, заменив косую черту любым другим приемлемым символом.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top