Python 创建监视目录的文件列表

Python 创建监视目录的文件列表,python,python-3.x,Python,Python 3.x,我在一个目录中设置了一个watchfolder,并希望它在每次出现新文件时都将每个filmename追加到一个列表中 以下是我想做的: import sys import time import logging from watchdog.observers import Observer from watchdog.events import LoggingEventHandler if __name__ == "__main__": logging.basicC

我在一个目录中设置了一个watchfolder,并希望它在每次出现新文件时都将每个filmename追加到一个列表中

以下是我想做的:

import sys
import time
import logging
from watchdog.observers import Observer
from watchdog.events import LoggingEventHandler

if __name__ == "__main__":
    logging.basicConfig(level=logging.INFO,
                        format='%(asctime)s - %(message)s',
                        datefmt='%Y-%m-%d %H:%M:%S')
    
    
#set file path

    #path = sys.argv[1] if len(sys.argv) > 1 else '.'
    path = "C:\\Users\\Ingest\\Downloads"

#logging
    event_handler = LoggingEventHandler()
    
#start observing
    observer = Observer()
    observer.schedule(event_handler, path, recursive=True)
    
#start
    observer.start()
    try:
        while True:
            time.sleep(1)
    except KeyboardInterrupt:
        observer.stop()
    observer.join()



var_1 = observer
directory_evaluation = []

for file in var_1:

    if file == "%.mxf" or "%.mov":
        directory_evaluation.append(file)
        print(directory_evaluation)




显然,我不能把“观察者”和一个变量联系起来,因为它不是一个可数。
我能做些什么来修复它?

根据您的评论,我假设您当前有两个文件名列表,它们位于两个目录中,
文件目录A
文件目录B
。您需要这些列表的交集。由于目录中的文件名必须是唯一的,因此可以将列表转换为集合,并对集合使用内置的交叉运算符:

files_dir_A = [f for f in os.listdir('path/to/dir/A') if f.endswith(extension)]

files_dir_B = [f for f in os.listdir('path/to/dir/B') if f.endswith(extension)]

result = list(set(files_dir_A) & set(files_dir_B))
因此,给出一个具体示例,列表如下所示:

files_dir_A = ['file1', 'file2', 'file3']
files_dir_B = ['file2', 'file3', 'file4']

result = ['file2', 'file3']

我不明白你在这里想干什么。
InotifyObserver
对象是不可编辑的。事实上,您可以将对象分配给您想要的任何变量(例如,
var_1=observer
是有效的,尽管不必要)。仔细检查文档,了解如何正确使用observer对象。我只是快速检查了文档,没有发现任何提示,说明此功能是软件包的一部分(如果我错了,请纠正我)。在这种情况下,您似乎必须自己实现它。为了帮助您,请尝试重新表述您的问题,并指定“它们的共同点”(文件名、大小等)是什么意思。我正在尝试获取放入两个不同目录的每个文件的列表,并查看它们的共同点我在目录中添加了一个watchfolder,我真的不想在识别后把那些文件名列给我。如果我希望列出当前文件,则此方法有效,但如果有人删除其中任何一个文件,则此方法无效:```extension1=“.mov”directory_evaluation=[]for arq in os.listdir(path):if arq.endswith(extension1):directory_evaluation.append(arq)directory_evaluation.sort()打印(“id:,directory_evaluation”)``@DocDriven我所说的“有共同点”:list_1=[1,2,3]list_2=[1,2,4]我想返回的内容:[1,2]这是我以前尝试过的。问题是,这段代码给出了我现在目录上的内容。我想要一个列表,当它们放入watchfolder目录时,请注册文件名。就像日志列表一样,某种寄存器或每个文件都会发送到该目录。@FlaviaBarcellos是
inotify
您在寻找什么?