gpt4 book ai didi

python - 使用python删除未访问的文件

转载 作者:太空宇宙 更新时间:2023-11-04 01:34:12 25 4
gpt4 key购买 nike

我的django app解析了用户上传的一些文件,有可能用户上传的文件在服务器中停留了很长时间,没有被app解析。这个如果很多用户上传大量文件,大小可能会增加。

我需要删除应用程序最近未解析的那些文件 - 比如 最近 24 小时未访问。我试过这样

import os
import time

dirname = MEDIA_ROOT+my_folder
filenames = os.listdir(dirname)
filenames = [os.path.join(dirname,filename) for filename in filenames]
for filename in filenames:
last_access = os.stat(filename).st_atime #secs since epoch
rtime = time.asctime(time.localtime(last_access))
print filename+'----'+rtime

这显示了每个文件的最后访问时间..但我不确定如何测试文件访问时间是否在过去 24 小时内..有人可以帮我吗?

最佳答案

查看 time.time()。它将允许您以 utc 时间访问当前时间戳。然后,您可以从文件时间戳中减去当前时间戳,看看它是否大于 24*60*60。

http://docs.python.org/library/time.html#time.time

此外,请记住,很多时候,Linux 文件系统是使用 noatime 挂载的,这意味着可能不会填充 st_atime 变量。您可能应该使用 st_mtime,只是为了安全起见,除非您 100% 确定文件系统将始终在挂载时记录时间。

这应该是一个工作示例,不过我还没有调试过。

import os
import time

dirname = MEDIA_ROOT+my_folder
filenames = os.listdir(dirname)
filenames = [os.path.join(dirname,filename) for filename in filenames]
for filename in filenames:
last_access = os.stat(filename).st_mtime #secs since epoch
timediff = time.gmtime() - last_access
print filename+'----'+timediff
if timediff > 24*60*60:
print 'older than a day'
# do your thing

关于python - 使用python删除未访问的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11337382/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com