我的python程序中存在一些问题。
我想打开一个目录,选择最旧的文件,然后将该文件复制到另一个目录。
我读过提到“shutil”的文件,但我不知道如何选择最旧的文件。
有人可以帮我解决这个问题吗?
答案 0 :(得分:4)
您可以使用os.path.getatime
获取文件(或目录)的上次访问时间,或ps.path.getmtime
获取上次修改的时间。
答案 1 :(得分:3)
以下示例比较修改日期,但您当然可以通过将gt
的定义更改为os.path.getctime
或os.path.getatime
来更改它以获取其他与文件相关的时间。
import os, shutil
fromdir = '/home/mac/Desktop'
todir = '/home/mac/Desktop/tmp'
gt = os.path.getmtime #change if you want something else
oldest = min([(f, gt(f)) for f in os.listdir(fromdir)])[0]
shutil.move(fromdir + '/' + oldest, todir)
答案 2 :(得分:1)
这对我不起作用。它似乎返回最小文件名(即按字母顺序返回最接近'a'的文件名)。
反转元组中的文件信息和文件名(gt(f),f)为我修复了它。因此,我不得不提高返回结果的索引([1])。
oldest = min([ ( gt(f),f ) for f in os.listdir(fromdir)])[1]