如何在特定目录中打开python搁置文件
问题描述:
我正在致力于Ch。试图扩展Multiclipboard项目的8个“用Python自动化烦人的东西”。这里是我的代码:如何在特定目录中打开python搁置文件
#! /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()
我已经加入这个计划,我的道路,并希望从任何目录,我在目前正在使用它的问题是,shelve.open()中创建一个新文件。当前工作目录。我如何拥有一个永久目录?
答
你
dbFile = os.path.join('Users', 'dustin', 'Documents', 'repos', 'python', 'mcbdb')
会变成类似'Users/dustin/Documents/repos/python/mcbdb'
所以如果你从/Users/dustin/
运行它,它会指向/Users/dustin/Users/dustin/Documents/repos/python/mcbdb
这可能不是你想要的。
如果使用绝对路径,根据/
或X:\
(取决于操作系统)的内容将保留该“特定目录”。
我可能会推荐别的东西虽然使用~
和os.path.expanduser
得到用户的主目录:
dbFile = os.path.expanduser('~/.mcbdb')
使用了绝对路径'dbFile'是一个开始。它现在看起来错了,因为它是一个相对的路径,从'Users'开始,但它确实看起来像你想要的'/ Users' –