Python:删除特定年龄的文件

Phi*_*hil 8 python

所以目前我正在尝试删除目录中列出的1分钟旧文件,我将在脚本工作后更改该值.
下面的代码返回错误:AttributeError: 'str' object has no attribute 'mtime'

import time
import os 
#from path import path

seven_days_ago = time.time() - 60
folder = '/home/rv/Desktop/test'

for somefile in os.listdir(folder):
    if int(somefile.mtime) < seven_days_ago:
        somefile.remove()
Run Code Online (Sandbox Code Playgroud)

unu*_*tbu 11

import time
import os

one_minute_ago = time.time() - 60 
folder = '/home/rv/Desktop/test'
os.chdir(folder)
for somefile in os.listdir('.'):
    st=os.stat(somefile)
    mtime=st.st_mtime
    if mtime < one_minute_ago:
        print('remove %s'%somefile)
        # os.unlink(somefile) # uncomment only if you are sure
Run Code Online (Sandbox Code Playgroud)

  • `os.path.getmtime(somefile)`更简洁,也可以代替`os.stat(somefile).st_mtime`. (6认同)

Sil*_*ost 6

那是因为somefile是一个字符串,一个相对文件名.你需要做的是构造文件的完整路径(即绝对路径),你可以用os.path.join函数做,然后将它传递给os.stat,返回值将有一个属性st_mtime,它将包含你想要的值作为一个整数.