我使用python 3.7.3 .py文件(Windows 10)制作了一个小tkinter应用程序。
现在,我想多次将具有不同名称的同一个mdb
临时文件(临时文件)复制到另一个文件夹。我的程序可以第一次复制和重命名临时文件,但是第二次不能复制该文件。
它显示:
FileExistsError: [WinError 183] Cannot create a file when that file already exists:
我尝试添加
if os.path.isfile(dsc):
之前
shutil.copy(src, dst)
以覆盖文件,但仍然无法正常工作。显示相同的错误。
from tkinter import *
from tkinter.ttk import *
class View(Frame):
def __init__(self, master=None):
Frame.__init__(self, master)
self.winfo_toplevel().title("Save File")
self.grid()
self.init_view()
def init_view(self):
self.inputText = Label(self)
self.inputText["text"] = "Input Serial ID"
self.inputText.grid(row=0, column=0, sticky=N + E)
self.inputField = Entry(self)
self.inputField["width"] = 20
self.inputField.grid(row=0, column=1, sticky=N + W)
self.save = Button(self)
self.save["text"] = "Save"
self.save.grid(row=1, column=1, sticky=N + W)
self.displayText = Label(self)
self.displayText["text"] = "Status:Idle"
self.displayText.grid(row=3, column=0, columnspan=7, sticky=N)
if __name__ == '__main__':
root = Tk()
app = View(master=root)
root.mainloop()
import os
import shutil
from os import path
from Save_Server_View import View
from tkinter import Tk
# Controller
class Controller:
def __init__(self):
self.app = View(master=Tk())
self.app.save["command"] = self.save_method
self.app.mainloop()
# Copy & Rename File
def save_method(self):
if os.path.exists("Abs Path(HIDE FOR PRIVATE)"):
src = path.realpath("Abs Path(HIDE FOR PRIVATE)")
dir = os.path.dirname(os.path.realpath('__file__'))
dst = os.path.join(dir, "..\\test data\\")
message = 'source={} => destination={}'.format(src, dst)
self.app.displayText["text"] = message
shutil.copy(src, dst)
for dst_filename in os.listdir(dst):
new_dst_filename = self.app.inputField.get() + '.mdb'
os.rename(os.path.join(dst, dst_filename), os.path.join(dst, new_dst_filename))
else:
message = "File didn't exist"
self.app.displayText["text"] = message
# Execute
if __name__ == '__main__':
app = Controller()
除了将相同名称的临时文件多次复制到另一个文件夹外,我只复制了一次。