Python path.exists() retournant False
Je suis en train de construire une base de serveur de fichier et mon programme ne peut pas trouver les fichiers.
def sendfile(sock, myfile):
print 'Serving file:', myfile
print 'File exists?:', os.path.exists(myfile)
path = os.path.normpath(os.path.join(os.getcwd(), myfile))
print 'Serving file:', path
print 'File exists?:', os.path.exists(path)
Ces retourne toujours False, même si le 'monfichier' et 'chemin' sont corrects [le fichier est dans le même répertoire que le programme serveur].
RALENTI fonctionne très bien, mais sans passer à des fonctions.
>>> print os.path.exists("/user/server/foo.txt")
True
Qu'ai-je manqué?
[EDIT:] Sortie:
Serving file: foo.txt
File exists?: False
Serving file: /user/server/foo.txt
File exists?: False
pourriez-vous nous donner la sortie complète de ces instructions print?
Ce exactement est
1. Pourquoi écrivez-vous un fichier de base de serveur? Ce sujet de <tous les existants excellent serveur de fichier>? 2. Est myfile passé en tant que chemin d'accès absolu? 3. Essayez
Est-il un caractère de saut de ligne à la fin de
les retours à la ligne - que c'était ...
Ce exactement est
myfile
? /user/server/foo.txt
?1. Pourquoi écrivez-vous un fichier de base de serveur? Ce sujet de <tous les existants excellent serveur de fichier>? 2. Est myfile passé en tant que chemin d'accès absolu? 3. Essayez
import pdb; pdb.set_trace()
l'intérieur de la fonction et d'examiner la portée locale.Est-il un caractère de saut de ligne à la fin de
path
? Essayez de décapage des espaces sur le chemin avant de vous passer à os.path.exists
.les retours à la ligne - que c'était ...
OriginalL'auteur schroeder | 2012-09-26
Vous devez vous connecter pour publier un commentaire.
Je suis presque sûr à 100% que vous n'êtes pas de la désinfection de votre entrée avant de vérifier si le chemin existe. Voici quelque chose que j'ai couru dans mon interprète:
Essayer de décapage des espaces sur
path
avant de vérifier s'il existe.OriginalL'auteur Thane Brimhall
Cela peut ne pas répondre directement à votre question, mais vous pourriez aller avec le "try/except" la méthode:
Quelle que soit la fonction utilise le fichier doit renvoyer une exception si le fichier n'existe pas (surtout si c'est une fonction intégrée), et vous pouvez agir en conséquence. Ensuite, vous n'avez pas besoin de vérifier si le fichier existe vous-même. Dangereux? Peut-être, mais ça dépend de ce que vous êtes en train d'essayer de faire.
OriginalL'auteur Pierre-Francoys Brousseau
Si vous lisez la documentation Python de os.chemin d'accès.exists(), il est dit qu'il y a des cas dans lesquels un fichier ou un dossier existe déjà, mais os.chemin d'accès.exists() retourne false:
OriginalL'auteur mostafa.elhoushi