如何使用 tkinter 将文件从文件夹复制到剪贴板?

How to copy file from a folder to clipboard using tkinter?

我有文件的路径,通常是图像或视频,我想将此文件复制到剪贴板,以便我可以将其粘贴到其他地方,例如:另一个文件夹、网站等

令人失望的是,以下内容不起作用

loc="C:/Path/To/File"
root.clipboard_clear()
root.clipboard_append(loc)

即使我 ctrl + C 文件并打印 self.parent.clipboard_get(),我也会得到 loc

我怎样才能做到这一点?

我认为 tkinter 没有复制文件的方法,但如果你在 windows 上,你可以使用 powershell 命令 Set-Clipboard。您可以使用 subprocess 模块来 运行 这个命令。这是一个最小的例子。

import subprocess
import tkinter as tk

def copy_file():
    #cmd = r"ls '{}' | Set-Clipboard".format(absolute_path) # if you only want the contents of folder to be copied
    cmd = r"gi '{}' | Set-Clipboard".format("background.png") # copies both folder and its contents
    subprocess.run(["powershell", "-command", cmd], shell=True)  # windows specific

root = tk.Tk()

copyfile = tk.Button(root, text="Copy file from c:\", command=copy_file)
copyfile.pack()
root.mainloop()

现在您可能想要 运行 来自另一个线程的 copy_file。这是对我的旧

的引用