Tkinter Shutil 移动文件
Tkinter Shutil Move Files
我正在使用 Tkinter 创建文件管理器。到目前为止,我已经创建了一种浏览文件和检查文件夹中文件的方法。我的问题是我正在尝试使用 shutil 将过去 24 小时内修改或创建的文件从一个源文件夹移动到目标文件夹。在我合并 Tkinter 之前,我使用 python 的代码工作正常。现在它移动了我的整个文件夹,而不仅仅是过去 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()
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)
我正在使用 Tkinter 创建文件管理器。到目前为止,我已经创建了一种浏览文件和检查文件夹中文件的方法。我的问题是我正在尝试使用 shutil 将过去 24 小时内修改或创建的文件从一个源文件夹移动到目标文件夹。在我合并 Tkinter 之前,我使用 python 的代码工作正常。现在它移动了我的整个文件夹,而不仅仅是过去 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()
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)