Python crée un dossier dans mon répertoire chaque fois que j'appelle cette méthode. La méthode est dans l'une de mes applications Django qui nécessite un accès à la zone locale du serveur.Python Création d'un dossier indésirable dans le répertoire
def filepath(filename, foldername='', envar='MYAPPDIR'):
if envar is not None and envar is os.environ:
dirpath = os.environ[envar]
else:
dirpath = '~/myFolder/%s' % foldername
expanded = os.path.expanduser(dirpath)
if not os.path.isdir(expanded):
if os.path.lexists(expanded):
raise IOError(errno.EEXIST, "Path is a file, nor a dir", expanded)
os.makedirs(expanded)
return os.path.join(expanded, filename)
Je voudrais l'empêcher de se produire.
Veuillez noter: l'utilisateur peut spécifier s'il se trouve dans un autre répertoire par défaut. Par conséquent le dossier par défaut est myFolder
, cependant si l'utilisateur veut utiliser un dossier appelé myOtherFolder
au sein de myFolder
(donc ~/myFolder/myOtherFolder/
) alors ils peuvent. C'est le genre de fonctionnalité que j'essaie d'implémenter, d'où mon utilisation de folder=''
si aucun argument n'est passé à la méthode (ce qui me semble être le problème).
malheureusement ne fonctionne toujours pas. Peut-être que j'étais un peu flou, je viens de mettre à jour ma question initiale. – Federer
@theEconomist: Je pense que vous l'avez rendu plus clair. Si vous ne voulez pas créer un répertoire, alors laissez tomber toute la partie makedirs. (Supprimez tout dans mon code de "try" jusqu'à "return".) Vous pouvez vérifier que le répertoire existe à la place, ou simplement renvoyer le résultat et laisser le code de niveau supérieur gérer cela (car il semble qu'il traite de problèmes similaires de toute façon). –