2011-09-07 3 views
1

Je veux supprimer un fichier situé sur mon bureau:supprimer le fichier Python, chemin non valide

os.remove('C:/Benutzer/Me/Desktop/sync.txt') 

Mais je reçois

[Error 3] System cannot find the path 

Cependant le fichier existe dans l'emplacement donné. Je peux copier le chemin et le coller dans l'explorateur. Cela va ouvrir le fichier.

Où est le problème?

+0

Etes-vous sûr que les '/' sont corrects? Rappelez-vous que sur les fenêtres, vous devez utiliser '\'. – Gandi

+4

'/' est correct sur les fenêtres –

+2

L'erreur 3 est le chemin introuvable au lieu du fichier non trouvé. Il y a quelque chose avec le chemin. –

Répondre

4

Je suppose que vous utilisez Vista ou 7? Alors soyez conscient de l'interface utilisateur pour faire beaucoup de localisation.

Probablement le chemin est vraiment C:\Users\..., avec la localisation à Benutzer qui se passe dans l'interface utilisateur.

+2

Cela ressemble à la bonne réponse. J'ai googlé et trouvé ceci: [lien] (http://windows.microsoft.com/fr-FR/windows7/Where-are-my-files-and-folders-after-upgrading-from-Windows-XP-or- Windows Vista) –

+0

merci c'est tout! –

3

Essayez d'utiliser des contre-obliques à la place des barres obliques, c'est-à-dire 'C:\Benutzer\Me\Desktop\sync.txt' (chemins de style dos/windows). Pour éviter que les barres obliques inverses ne soient traitées comme des caractères d'échappement, utilisez une chaîne brute:

os.remove(r'C:\Benutzer\Me\Desktop\sync.txt') 
+1

Ce ne sera pas le cas car un '/' est un séparateur de chemins parfaitement valide sur Windows. –

+0

n'est pas '/' est indépendant de la plate-forme ?? – amyassin

0

Cela ressemble à la bonne réponse. J'ai googlé et trouvé ceci: link

Nom du dossier (et chemin d'accès) dans Windows XP Documents and Settings (C: \ Documents and Settings)

Dans Vista et 7, il est déplacé vers c: \ Users

1

êtes-vous sûr que le chemin du répertoire est correct, si slash problème qui cause (ne devez pas être), essayez ceci:

import os 
filePath = 'C:' + os.path.sep + 'Benutzer' + os.path.sep + 'Me' + os.path.sep + 'Desktop' + os.path.sep + 'sync.txt' 
os.remove(filePath) 

l'avantage d'utiliser os.path.sep ici est que maintenant vous n'avez pas à vous inquiéter si vous êtes sur linux ou windows ou autre ...

+0

Vous avez principalement raison, mais cette solution semble moche. Une solution sémantiquement équivalente, mais meilleure, est 'filePath = os.path.join ('C:', 'Benutzer', 'Moi', 'Desktop', 'sync.txt')'. – glglgl

+0

merci de m'avoir amélioré. –

Questions connexes