Question

Je suis en train de renommer certains fichiers, mais obtenir une erreur déconcertante *. Quand je lance ceci:

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

Je reçois l'erreur suivante:

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

Depuis que je sais que le fichier à fullPath existe, je suis déconcerté par l'erreur. Bien sûr, newFilePath n'existe pas, parce que ce serait stupide. Tous les conseils?

Merci! Alex

* sont-ils pas tous?

Était-ce utile?

La solution

Vous pouvez toujours obtenir l'exception si vous essayez de copier dans un répertoire qui n'existe pas.

Autres conseils

Je ne vois pas le plein fonctionnement interne de votre code, donc voici mon grain de sel:

Votre newFilePath peut contenir un répertoire qui n'existe pas. Si tel est le cas, alors en fonction de votre système d'exploitation, votre programme ne peut pas créer un fichier dans un répertoire qui n'existe pas. Cela pourrait être votre erreur.

Hope this helps

Il semble que l'affiche résolu son problème, mais j'ai eu le même symptôme et la cause semblait être différent. Le fichier que je tentais de renommer venait d'être créé dans un appel subprocess sur la ligne précédente. Si je courais à nouveau mon script, je n'ai pas eu le problème de changement de nom, car le fichier a été créé dans la période précédente, mais si je supprimé le fichier précédemment créé, je recevrais le même problème avec changement de nom. Il semble que os.rename devenais appelé avant le sous-processus a été achevé et le fichier à renommer donc n'existait pas encore. J'inséré un os.wait () après l'appel subprocess, et je crois que cela a résolu mon problème.

J'ai eu la même erreur quand mon nouveau nom de fichier contenait des barres obliques, qui sont confondus avec des séparateurs de répertoires sous Unix et Linux. Par exemple, renommer un fichier à « 4/27 / 2015.txt » conduit à un répertoire qui n'existe pas et les résultats dans « Aucun fichier ou répertoire ». Vous pouvez résoudre ce problème en remplaçant les barres obliques avec tout autre caractère acceptable.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top