Je travaille sur Ch. 8 de "Automatiser le truc ennuyeux avec Python", en essayant d'étendre le projet Multiclipboard. Voici mon code:Comment puis-je ouvrir un fichier python shelve dans un répertoire spécifique
#! /usr/bin/env python3
# mcb.pyw saves and loads pieces of text to the clipboard
# Usage: save <keyword> - Saves clipboard to keyword.
# <keyword> - Loads keyword to the clipboard.
# list - Loads all keywords to clipboard.
# delete <keyword> - Deletes keyword from shelve.
import sys, shelve, pyperclip, os
# open shelve file
dbFile = os.path.join('Users', 'dustin', 'Documents', 'repos', 'python', 'mcbdb')
shelfFile = shelve.open(dbFile)
# Save clipboard content
if len(sys.argv) == 3 and sys.argv[1].lower() == 'save':
shelfFile[sys.argv[2]]= pyperclip.paste()
# Delete choosen content
elif len(sys.argv) == 3 and sys.argv[1].lower() == 'delete':
if sys.argv[2] in list(shelfFile.keys()):
del shelfFile[sys.argv[2]]
print('"' + sys.argv[2] + '" has been deleted.')
else:
print('"' + sys.argv[2] + '" not found.')
elif len(sys.argv) == 2:
# List keywords
if sys.argv[1].lower() == 'list':
print('\nAvailable keywords:\n')
keywords = list(shelfFile.keys())
for key in sorted(keywords):
print(key)
# Load content
elif sys.argv[1] in shelfFile:
pyperclip.copy(shelfFile[sys.argv[1]])
else:
# Print usage error
print('Usage:\n1. save <keyword>\n2. <keyword>\n' +
'3. list\n4. delete <keyword>')
sys.exit()
# close shelve file
shelfFile.close()
J'ai ajouté ce programme à mon chemin et je voudrais l'utiliser à partir de quel répertoire Je travaille actuellement dans le problème est que shelve.open() crée un nouveau fichier dans le. répertoire de travail actuel. Comment puis-je avoir un répertoire persistant?
utilisant un chemin absolu 'dbFile' est un début. Cela semble faux pour le moment, car c'est un chemin relatif d'où vous êtes, en commençant par 'Users', mais il semble vraiment que vous voulez'/Users' –