我创建了一个脚本,以便将修改过的或新文件从一个文件夹移动到另一个文件夹。运行时,它没有显示错误,工作正常。然而,没有文件移动过。为什么会这样?
import os
from shutil import move
from time import time
def mins_since_mod(fname):
"""Return time from last modification in minutes"""
return (time() - os.path.getmtime(fname)) / 60
PARENT_DIR = 'C:\Users\Student\Desktop\FolderA'
MOVE_DIR = 'C:\Users\Student\Desktop\FolderB'
# Loop over files in PARENT_DIR
for fname in os.listdir(PARENT_DIR):
# If the file is a directory and was modified in last 15 minutes
if os.path.isdir(fname) and mins_since_mod(fname) < 15:
move(fname, MOVE_DIR) # move it to a new location
答案 0 :(得分:0)
正如提到的melpomene,os.listdir()
返回文件名列表而不是完整路径。
os.path.isdir()
的结果为False,因此永远不会调用move(...)
。
答案 1 :(得分:0)
这可能有所帮助:
# Loop over files in PARENT_DIR
for root, dirs, files in os.walk(PARENT_DIR):
for fname in dirs:
if mins_since_mod(fname) < 15:
move(os.path.join(root, fname), MOVE_DIR) # move it to a new location