0

我正在尝试创建一个查看目录的脚本,如果它被称为垃圾并且超过 3 个月,它可以被删除。

到目前为止,我有这个代码。

import os, sys, time
from subprocess import call
import path 



now = time.time()
cutoff = now - (30)#(91 * 86400)

path = '/users/shoot_station_5/documents/folderfordeletetest/'

for root, d_names, f_names in os.walk(path):
    print (root, d_names, f_names)
    for _dir in d_names:
        if time.ctime(os.path.getmtime(_dir)) < cutoff:
            print (_dir) 

当我打印 (root, d_names, f_names) 它给了我这个结果

/users/shoot_station_5/documents/folderfordeletetest/ ['dont_delete', 'dont_delete_me'] ['.DS_Store']
/users/shoot_station_5/documents/folderfordeletetest/dont_delete ['trash'] ['.DS_Store']
/users/shoot_station_5/documents/folderfordeletetest/dont_delete/trash [] []
/users/shoot_station_5/documents/folderfordeletetest/dont_delete_me ['trash'] ['.DS_Store']
/users/shoot_station_5/documents/folderfordeletetest/dont_delete_me/trash [] [] 

运行最后一部分时,我收到错误

Traceback (most recent call last):
  File "/Users/shoot_station_5/Documents/scripts/walkdelete.py", line 16, in <module>
    if time.ctime(os.path.getmtime(_dir)) < cutoff:
  File "/anaconda3/lib/python3.6/genericpath.py", line 55, in getmtime
    return os.stat(filename).st_mtime
FileNotFoundError: [Errno 2] No such file or directory: 'dont_delete' 

我试图将名为垃圾的文件夹删除,因为它的时间超过 30 秒(出于测试目的,实际上希望它是 3 个月)我怎么会得到没有这样的文件或目录错误?

4

2 回答 2

0

absolute path除非您的终端位于该目录中,否则您无法使用。

改为这样做:

os.chdir(r"C:\Users\rajat.prakash\Downloads")
fresh = max(latest_file, key = os.path.getctime)
print(fresh)

它将打印最新下载的 Excel 报告,但首先更改目录。

于 2020-07-25T17:36:39.850 回答
0

利用os.path.join(root, _dir)

前任:

import os, sys, time
from subprocess import call
import path 

now = time.time()
cutoff = now - (30)#(91 * 86400)

path = '/users/shoot_station_5/documents/folderfordeletetest/'

for root, d_names, f_names in os.walk(path):
    print (root, d_names, f_names)
    for _dir in d_names:
        if time.ctime(os.path.getmtime(os.path.join(root, _dir))) < cutoff:
            print (_dir) 
于 2019-01-22T13:08:22.183 回答