在Python中创建执行某些操作的watchfolder
目前我正在从事一个项目,该项目的目标是在Python中创建watchfolder来执行某些操作。我读过关于watchdog库的文章,现在我正在尝试实现它。我的代码基于: 下面是必须对其执行操作的文件夹和子文件夹的结构。 主文件夹watchfolder包含递归观察到的子文件夹subfolders。 开始时,只有包含空子文件夹的watchfolder。 我有另一个程序,移动特殊的目录VIDX到特定的子文件夹。 现在,完成了三个操作: 设置\u提取器已执行。此函数用于打开文件adi.xml,并在此基础上创建新的文件settings.txt。 已执行mediainfo_提取器。此函数用于返回有关VIDX.mp4文件的特定信息。然后使用此信息创建folderName变量。 基于folderName,将内容为VIDX.mp4、settings.txt、adi.xml的整个文件夹VIDX移动到另一个基于folderName变量的目录中 文件夹VID2移动到子文件夹3的示例过程如下: 然而,我遇到了一些问题。我不知道该如何正确设置操作顺序,以获得理想的效果。我不能完全理解“递归性”,因为程序正在执行一些清除局部变量的操作。当我运行程序时,它首先分析*.mp4文件,创建folderName变量,然而新事件触发内存清除,然后脚本不知道应该将文件移动到哪里 基本watchfolder代码与第一个链接中的代码相同,但pastebin上有以下版本: 以下是我负责操作的代码:在Python中创建执行某些操作的watchfolder,python,recursion,watchdog,python-watchdog,Python,Recursion,Watchdog,Python Watchdog,目前我正在从事一个项目,该项目的目标是在Python中创建watchfolder来执行某些操作。我读过关于watchdog库的文章,现在我正在尝试实现它。我的代码基于: 下面是必须对其执行操作的文件夹和子文件夹的结构。 主文件夹watchfolder包含递归观察到的子文件夹subfolders。 开始时,只有包含空子文件夹的watchfolder。 我有另一个程序,移动特殊的目录VIDX到特定的子文件夹。 现在,完成了三个操作: 设置\u提取器已执行。此函数用于打开文件adi.xml,并在此基
if(event.event_type == 'created'):
filename = path_leaf(event.src_path)
extension = os.path.splitext(event.src_path)[-1].lower()
if filename == "adi.xml":
adi_to_settings.settings_extractor(event.src_path)
shouldMove = True
if extension == ".mp4":
#<PART OF CODE RESPONSIBLE FOR CREATING folderName>
folderName = folderName.upper()
folderThatWillBeMoved = str(Path(event.src_path).parent)
if(len(os.listdir(r"C:\Users\user\WFS\watchfolder\subfol3\{}".format("folderThatWilLBeMoved))) >= 3 & shouldMove == True):
moveAllDirsAndFilesinDir(r'C:\Users\user\WFS\watchfolder\{}'.format("folderThatWillBeMoved"),r'C:\Users\user\WFS\tempfolder\{}'.format(folderName))
shouldMove = False
总而言之,我面临的主要问题是控制首先对文件执行哪个操作,或者更好地控制首先分析哪个文件。
我尽量简明扼要地解释一切。我非常感谢任何能让我更接近解决方案的提示,我应该如何修改代码以便以干净的方式执行操作。您提到的一个问题是:“因为程序正在执行一些清除局部变量的操作”。提供两种方法来维护变量,最简单的方法是使用全局变量。作为我评论的后续内容,假设您的处理程序是一个类,则可以使用类变量,在本例中,这比全局变量更好。