python - Tkinter Shutil 移动文件
问题描述
我正在使用 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)
推荐阅读
- sharepoint - SharePoint Designer 2013 编辑网站页面
- c++ - 为什么使用 += 运算符的加法比普通加法快
- java - JPA Query:加入具有分组条件的子查询
- sql - 插入带有子类型列的表:类型继承、面向对象的 SQL
- twilio - client.recordings.each 不是 Node.js 中的函数
- python - Python XML SOAP 解析
- javascript - Control + F 类似的文本搜索框嵌入到 iframe 的网站
- c# - MVC 在 Modal Popup Submit 按钮上打开部分视图
- node.js - 如何从 AWS SNS 通知中提取消息属性?
- c++ - AIX C++ Map 编译问题