python如何实现定时遍历目录,每次把目录下的最新的文件放到列表里?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python如何实现定时遍历目录,每次把目录下的最新的文件放到列表里?相关的知识,希望对你有一定的参考价值。

比如:遍历A目录下,A目录下每分钟进来文件123.txt、124.txt.....,每分钟进来的文件名不一样,可以把进来后已经处理过的文件放到列表里吗?处理过的pass,没处理过的才进行下一步操作,请教具体如何实现?
如果文件量很大,可以使用列表吗,列表没有长度限制吧?每天需要清理列表已有的记录,如何实现呢?

            def getFileListType(path, deal_type_dict):
    '定时每分钟调用此函数' 
    new_file_list = os.listdir(path)
    for new_file in new_file_list:
        #判断是否是新进来的文件 
        if new_file in deal_type_dict:
             contiune

        deal_type_dict[new_file] = 0 # 0 表示文件未下一步操作 1 表示已处理               
if __name__ == '__main__':
     deal_type_dict = 
     while 1:
            time.sleep(60)
            getFileListType("A目录")
            for deal_file in deal_type_dict:
                if deal_type_dict[deal_file] == 0:
                    deal_next_function(deal_file ) #新文件处理操作
                    deal_type_dict[deal_file]  = 1 #并标识处理过的文件
            # 如果要定时清理,自己实现一个计时函数清理字典中处理过的文件
            if 满足条件 == 1天:
                 清除字典中=1的记录

参考技术A 123456789101112131415161718192021 def getFileListType(path, deal_type_dict): '定时每分钟调用此函数' new_file_list = os.listdir(path) for new_file in new_file_list: #判断是否是新进来的文件 if new_file in deal_type_dict: contiune deal_type_dict[new_file] = 0 # 0 表示文件未下一步操作 1 表示已处理 if __name__ == '__main__': deal_type_dict = while 1: time.sleep(60) getFileListType("A目录") for deal_file in deal_type_dict: if deal_type_dict[deal_file] == 0: deal_next_function(deal_file ) #新文件处理操作 deal_type_dict[deal_file] = 1 #并标识处理过的文件 # 如果要定时清理,自己实现一个计时函数清理字典中处理过的文件 if 满足条件 == 1天: 清除字典中=1的记录

python遍历目录下的所有文件和目录详细介绍

目录结构如下图:

test---a------d------g--------g.txt

test---a------d------a.txt

test---a------e

--------b

--------c

--------1.txt

--------2.txt

一、使用os.walk遍历所有的目录和文件

1、获取test目录下的所有文件

    for root,dirs,files in os.walk(r"D:\\test"):
        for file in files:
            #获取文件所属目录
            print(root)
            #获取文件路径
            print(os.path.join(root,file))

2、获取test目录下的所有目录

    for root,dirs,files in os.walk(r"D:\\test"):
        for dir in dirs:
            #获取目录的名称
            print(dir)
            #获取目录的路径
            print(os.path.join(root,dir))

 

二、利用os.listdir递归获取所有的目录路径和文件路径

def get_file_path(root_path,file_list,dir_list):
    #获取该目录下所有的文件名称和目录名称
    dir_or_files = os.listdir(root_path)
    for dir_file in dir_or_files:
        #获取目录或者文件的路径
        dir_file_path = os.path.join(root_path,dir_file)
        #判断该路径为文件还是路径
        if os.path.isdir(dir_file_path):
            dir_list.append(dir_file_path)
            #递归获取所有文件和目录的路径
            get_file_path(dir_file_path,file_list,dir_list)
        else:
            file_list.append(dir_file_path)

if __name__ == "__main__":
    #根目录路径
    root_path = r"D:\\test"
    #用来存放所有的文件路径
    file_list = []
    #用来存放所有的目录路径
    dir_list = []
    get_file_path(root_path,file_list,dir_list)
    print(file_list)
    print(dir_list)

以上是关于python如何实现定时遍历目录,每次把目录下的最新的文件放到列表里?的主要内容,如果未能解决你的问题,请参考以下文章

C#,给定一个目录,遍历该目录下的所有文件、文件夹

如何使用perl遍历一个目录下的所有文件

python遍历目录就是这么简单

这是一个定时脚本,主要功能是遍历该文件夹下的所有文件并存储到数组,对数据中的文件进行操作,一个一个移动到指定的目录下,并删除原有文件

python遍历目录下的所有文件和目录详细介绍

python 递归遍历目录下的文件,以处理和映射到相同的目录结构。递归遍历文件,获取相同目录结构的目标路径。