如何仅在单击按钮时复制文件?

2024-10-06 07:02:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我之前发布了一个类似于这个问题的问题,它得到了解决,但我现在面临一个新问题。我想在用户单击按钮时复制一个包含数据的文件。在我之前的问题中,我知道了如何复制并粘贴一个文件,但现在发生的是,在我运行程序的第二次,它复制了我的文件,它甚至没有将数据粘贴到新文件中,它只是创建了一个具有我指定名称的新文件,但我希望它发生在用户单击按钮时,然后文件应该被复制,数据应该在其中。以下是我使用的代码:

from tkinter import  *


root=Tk()


def duplicatefunction():
    f=open("prototype.txt","r")
    g=open("copy.txt","w")


button1=Button(text="duplicate file", command=duplicatefunction())
button1.pack()


root.mainloop()

那么,我做错了什么?如何修复它以复制文件中的数据


Tags: 文件数据代码用户from程序txt名称
1条回答
网友
1楼 · 发布于 2024-10-06 07:02:10

您不应该在按钮的命令参数中包含()。所以写

button1 = Button(text="duplicate file", command=duplicatefunction)

您拥有的复制功能除了打开2个文件外,什么也不做。一个用于阅读,一个用于写作,但实际上你并没有阅读或写作任何东西

如果要创建副本,可以使用shutil库中的copy2()函数: https://docs.python.org/3/library/shutil.html

在这种情况下,复制函数可能如下所示:

def duplicatefunction():
    shutil.copy2('prototype.txt', 'copy.txt')

相关问题 更多 >