我正在尝试创建一个简单的脚本来将所选文件的文件路径(在 Windows 资源管理器中)复制到 python 中的剪贴板。
我一直在查看 pyperclip
和 tkinter
但我不确定具体如何进行。
tkinter
中的askopenfilename
看起来很有前途,但我想选择 python 之外的文件,然后通过 Windows 上下文菜单调用脚本。
编辑:
我想创建一个脚本,当我使用 Windows 上下文菜单(右键单击)复制它时,它可以将本地文件路径更改为网络路径。
例如在 Windows 资源管理器中右键单击我的文件 C:\Users\LocalUser\test.txt
时,我想添加一个下拉选项来复制文件路径,但将目录更改为例如D:\Users\LocalUser\test.txt
。
我正在考虑通过在 RegEdit 中添加一个新键并在 Computer\HKEY_CLASSES_ROOT\*\shell
中添加一个快捷方式到 python 脚本来添加上下文菜单选项,但为了这样做,我需要能够先将文件路径复制到我的剪贴板。
最佳答案
你是对的,要在 Windows 上下文菜单中添加一些东西,你需要编辑 Windows 注册表编辑器。
要复制剪贴板中的文件位置,您可以使用 pyperclip
但这只能使用 tkinter
来完成:
from tkinter import Tk, filedialog
r = Tk()
r.withdraw()
filename = filedialog.askopenfilename()
#print(filename)
r.clipboard_clear()
r.clipboard_append(filename)
r.update() # now it stays on the clipboard after the window is closed
r.destroy()
您可以做的是,在文件资源管理器中,右键单击,然后在上下文菜单中,将有一个选项(例如,“复制文件的文件位置”),您可以使用注册表添加该选项编辑。然后单击该选项,将打开另一个文件对话框
,您在其中选择的任何文件的位置都会被复制到剪贴板。
编辑:只在上下文菜单中添加“复制路径”选项:
在注册表编辑器中,对于文件,在HKEY_CLASSES_ROOT\*\shell\Copy Path\command
,对于文件夹,在HKEY_CLASSES_ROOT\Directory\shell\Copy Path\command
>, 通过将 (Default) 的值设置为
cmd.exe /c (echo.|set /p=%1) | clip
就是这样,不用python,只使用默认的命令行解释器,你可以在windows中复制文件/文件夹的完整路径。
关于Python获取文件路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68159696/