我正在使用Tkinter创建一个文件管理器。到目前为止,我已经创建了一种浏览文件和检查文件夹中文件的方法。我的问题是,我试图使用shutil将在过去24小时内修改或创建的文件从一个源文件夹移动到目标文件夹。我的代码使用python运行得很好,直到我加入了Tkinter。现在它会移动我的整个文件夹,而不仅仅是在过去24小时内修改过的文件。
任何帮助都将不胜感激!我是一名学生,所以我还在学习。
from tkinter import *
import shutil
import time
import os
from tkinter import filedialog
root = Tk()
root.title('File Manager')
root.geometry("300x250")
def select_folder():
src = filedialog.askdirectory()
def move_to():
src = filedialog.askdirectory()
SECONDS_IN_DAY = 24 * 60 * 60
now = time.time()
before = now - SECONDS_IN_DAY
def last_mod_time(fname):
return os.path.getmtime(fname)
for fname in os.listdir(src):
src_fname = os.path.join(src, fname)
if last_mod_time(src_fname) > before:
dst_fname = os.path.join(dst, fname)
dst = filedialog.askdirectory()
shutil.move(src, dst)
def file_check():
folderList = filedialog.askdirectory()
sortlist = sorted(os.listdir(folderList))
i=0
print("Files in ", folderList, "folder are:")
while(i<len(sortlist)):
print(sortlist[i]+'\n')
i+=1
select_button = Button(root, text="Select Folder", command= select_folder)
select_button.pack(pady=20)
move_button = Button(root, text="Move To Folder", command= move_to)
move_button.pack(pady=22)
check_button = Button(root, text="File Check", command= file_check)
check_button.pack(pady=24)
root.mainloop()发布于 2021-10-26 02:08:45
shutil.move(src, dst)你告诉它移动目录。我猜你是故意的
shutil.move(src_fname, dst_fname)您也有一些缩进问题。作为猜测,您需要:
def move_to():
src = filedialog.askdirectory()
dst = filedialog.askdirectory()
SECONDS_IN_DAY = 24 * 60 * 60
now = time.time()
before = now - SECONDS_IN_DAY
def last_mod_time(fname):
return os.path.getmtime(fname)
for fname in os.listdir(src):
src_fname = os.path.join(src, fname)
if last_mod_time(src_fname) > before:
dst_fname = os.path.join(dst, fname)
shutil.move(src_fname, dst_fname)https://stackoverflow.com/questions/69716652
复制相似问题