En Python 3.6, j'essaie de créer une base de données appelée test.db
dans le répertoire personnel de l'utilisateur actuel. Actuellement, je reçois ce répertoire avec home = os.path.expanduser("~")
(après l'importation os
). Mon problème est que lorsque je cours s = shelve.open(home + "/test")
il crée le fichier en /path/to/current/python/file/Users/USERNAME/test.db
. Existe-t-il un moyen de mettre en attente une base de données par un chemin absolu, par ex. /Users/USERNAME/test.db
? Aussi, puis-je le faire croiser la plate-forme; Windows nécessiterait shelve.open(home + "\test")
et Mac/Linux nécessiterait shelve.open(home + "/test")
? Merci.Base de données de base de données en chemin absolu
-1
A
Répondre
1
Pour le rendre multi-plateforme, utilisez os.path.join()
pour rejoindre les chemins
import os, shelve
path = os.path.join(os.path.expanduser("~"), 'test')
shelve.open(path)
+0
Si je tapais 'test.db', cela créerait un fichier appelé' test.db.db'. –
Pourquoi downvote? –
Je n'ai pas downvote, mais je pense qu'il devrait y avoir un script de démo ici. Votre code devrait fonctionner. Je ne sais pas ce que '/ path/to/python/file' est ... est-ce le chemin de votre script python ... et vous n'êtes pas dans ce répertoire? Mais un script court avec quelques tirages le rendrait plus clair. – tdelaney