gpt4 book ai didi

python - 发电机不能自己耗尽

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

我正在尝试连接两个函数,一个遍历目录并查找文件名,将名称发送到函数以检查是否存在超过 30 天的文件,如果不满足条件则删除文件。

我尝试练习使用生成器,并使函数之间优雅地“流动”,但它破坏了 for 循环和函数,因此需要重新激活函数。

import os
from datetime import datetime,timedelta

PATH = os.path.abspath(os.path.dirname(__file__)) + '\folder'


def get_dates(p):
for path, dirs, files in os.walk(p):
for file in files:
fullname = path+ '\\'+file
mtime = os.stat(fullname).st_ctime

yield (delete_not_needed(fullname, mtime))


def delete_not_needed(fullname, mtime):
file_time = datetime.fromtimestamp(mtime)
if datetime.today()-file_time> timedelta(days=30):
os.remove(fullname)

if __name__ == '__main__':
next(get_dates(PATH))

我怎样才能让这项工作连接这些功能?

最佳答案

您应该返回文件名,然后遍历生成器以删除这些文件。

def delete_not_needed(fullname, mtime):
file_time = datetime.fromtimestamp(mtime)
if datetime.today()-file_time> timedelta(days=30):
return fullname

if __name__ == '__main__':
files_to_delete = get_dates(PATH)
for file in files_to_delete:
if file:
os.remove(file)

关于python - 发电机不能自己耗尽,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57920746/

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