Python获取文件路径

标签 python tkinter copy clipboard filepath

我正在尝试创建一个简单的脚本来将所选文件的文件路径(在 Windows 资源管理器中)复制到 python 中的剪贴板。 我一直在查看 pypercliptkinter 但我不确定具体如何进行。

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()

您可以做的是,在文件资源管理器中,右键单击,然后在上下文菜单中,将有一个选项(例如,“复制文件的文件位置”),您可以使用注册表添加该选项编辑。然后单击该选项,将打开另一个文件对话框,您在其中选择的任何文件的位置都会被复制到剪贴板。


编辑:只在上下文菜单中添加“复制路径”选项:

Reference

在注册表编辑器中,对于文件,在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/

相关文章:

python - 在 docker 环境中 pip install git+url

python - 如何获取 Pandas 数据帧每行中包含预定义等价类值名称的列?

python - 如何验证 tkinter 中的条目?

c# - 向后复制数组?阵列。复制?

python - 公开实例属性的最佳方式

python - 如何从Python上的html标签获取某些文本?

python-3.x - Tkinter 在 Treeview 小部件中插入一个 Combobox

python - 如何知道哪些框架位于顶部(又称 tkraise 之后)?

java - 克隆/复制不可修改的列表

java - 我无法弄清楚的 HashMap 复制行为