首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Tkinter Shutil移动文件

Tkinter Shutil移动文件
EN

Stack Overflow用户
提问于 2021-10-26 02:03:03
回答 1查看 58关注 0票数 0

我正在使用Tkinter创建一个文件管理器。到目前为止,我已经创建了一种浏览文件和检查文件夹中文件的方法。我的问题是,我试图使用shutil将在过去24小时内修改或创建的文件从一个源文件夹移动到目标文件夹。我的代码使用python运行得很好,直到我加入了Tkinter。现在它会移动我的整个文件夹,而不仅仅是在过去24小时内修改过的文件。

任何帮助都将不胜感激!我是一名学生,所以我还在学习。

代码语言:javascript
复制
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()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-10-26 02:08:45

代码语言:javascript
复制
shutil.move(src, dst)

你告诉它移动目录。我猜你是故意的

代码语言:javascript
复制
shutil.move(src_fname, dst_fname)

您也有一些缩进问题。作为猜测,您需要:

代码语言:javascript
复制
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)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69716652

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档