【问题标题】:how do i copy a file only on click of a button? [duplicate]如何仅在单击按钮时复制文件? [复制]
【发布时间】:2021-03-31 20:32:17
【问题描述】:

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

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

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

【问题讨论】:

    标签: python file tkinter copying


    【解决方案1】:

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

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

    【讨论】:

    • 非常感谢它的工作,我盯着我的电脑看了 5 小时想做什么,但现在终于成功了!!!!!!!
    • 嘿,但是当我复制它时,文件中没有数据
    • 奇怪,但请告诉我该怎么做??
    • 这很奇怪...您尝试复制的原始文件中是否有数据?
    • 无论如何不要担心@robbo,现在文件正在运行,我非常兴奋并创建了大量重复项,我现在就去删除它们??
    猜你喜欢
    • 2017-04-18
    • 2022-09-27
    • 2020-04-15
    • 2018-01-25
    • 2020-03-19
    • 2017-11-19
    • 1970-01-01
    • 1970-01-01
    • 2011-05-05
    相关资源
    最近更新 更多