我正在尝试查看目录并确定上次访问文件的时间,以便可以移动访问时间比一个月大的文件(例如一个月),但是我在检查文件的访问时间时遇到问题文件。我似乎不想写文件的访问时间,而这不是我想要做的事情。为什么会这样?
这是用于检查文件访问时间,并将其与一个月前的时间进行比较(由于我遇到问题,显然没有完成)。我已经尝试过使用st_mtime和st_ctime,但是它们在上次访问文件时不会返回。我在上面进行编码的计算机是Mac。
import os, shutil
import datetime as dt
downloads = "/Users/tomato/Downloads/"
os.chdir(downloads)
# list of files in downloads or specified directory
files_list = []
class file:
def __init__(self, object):
self.object = object
def getLastATime(self): # prints out something that looks like this: 2019-04-03 which can be read as year-month-day
return dt.date.fromtimestamp(os.stat(".").st_atime)
for files in os.listdir(os.getcwd()):
files_list.append(file(files))
print(files_list[0].getLastATime())
当它打印出目录中的第一个文件时,我的预期结果是看到2019-04-02,但是我得到的是2019-04-04,这是今天,而不是我上一次访问文件并实际上将其打开以查看或使用它。
答案 0 :(得分:1)
您的班级召唤os.stat(".")
。这将始终获取当前目录的统计信息,而不是获取构造对象的文件的统计信息。 (并且因为您刚刚使用os.listdir()
访问目录,所以访问时间将是当前时间。)请考虑改用os.stat(self.object)
。
此外,请勿调用您的课程file
。您将使习惯the file
class from Python 2的人感到困惑。