OSError: le Répertoire n'est pas vide soulevées, comment réparer?

Je suis juste en train d'écrire une petite application qui prend une valeur à partir d'un fichier nommé " les DONNÉES.DAT " et renomme le dossier qui contient ce fichier avec cette valeur.

L' .py script s'exécute dans un autre dossier et permet à l'utilisateur de définir le chemin d'accès. Pour vous donner une meilleure idée, définis par l'utilisateur doit être comme (sur un mac) '/Users/Utilisateur/Bureau/DOSSIER " et "DOSSIER" devrait contenir des DONNÉES.DAT'.

C'est qu'une petite partie du code source ressemble:

try:
    data = open('DATA.DAT').read()

    data_data = data[12:17]
    path_paths = path.rsplit('/')
    basepath = '/'.join(path_paths[:-1])
    chdir(basepath)

    if path_paths[-1] <> data_data:
        rename(path_paths[-1], data_data)
        raw_input('Folder name has been corrected! Thank you.')
        quit()
    else:
        print('Folder name was already correct! Thank you.')
        quit()
except IndexError:
    raw_input('ERROR!')
    quit()

Bien, il fonctionne, mais il élever et d'exception lors d'un "DOSSIER" contient plus d'un fichier (en fait, un "DOSSIER" doit comporter des DONNÉES.DAT' et d'autres dossiers. Qui ne donne pas de problèmes.)...

Traceback (most recent call last):
  File "/Users/User/Desktop/example.py", line 72, in <module>
    rename(path_paths[-1], data_data)
OSError: [Errno 66] Directory not empty

Juste pour empêcher que cela se produit, est-il un moyen de le réparer? Merci.

Ce qui se passe quand vous chdir() de l'annuaire avant de le renommer? Quelle plate-forme est-ce?

OriginalL'auteur PyGuy | 2011-09-20