我正在使用
watchdog
来监视文件并使用 rsync
将它们从目录中移动。 我覆盖了 on_modified 方法。 Rsync 的同步超出了应有的程度。 destinationDir = /home/pi/Desktop/destination
。
sourceFile 一次传入一个。
/home/pi/Desktop/source/one.txt
/home/pi/Desktop/source/two.txt
/home/pi/Desktop/source/three.txt
/home/pi/Desktop/source/four.txt
def check_directory(directory):
for f in directory.iterdir():
#updating the files so on_modified gets triggered
f.touch()
def on_modified(event):
move_file(event.src_path)
def move_file(sourceFile):
args = ['rsync','-hav',sourceFile,destinationDir,'--remove-source-files']
subprocess.call(args)
Rsync 正在工作,args 行如下。
['rsync','-hav','/home/pi/Desktop/source/one.txt','/home/pi/Desktop/destination','--remove-source-files']
它确实移动了所有文件。 但是,在发送最后一个文件后,它会同步空源目录。
source
目录永远不会通过触摸更新时间。 但 rsync 正在将目录移过来。我做错了什么。
因为,
rsync
将给定路径(/home/pi/Desktop/source/one.txt)视为源文件或目录,当目录变为空时,它会处理空目录。相反,添加一个函数,例如...
import os
def move_file(sourceFile):
# Check if the path is a file
if os.path.isfile(sourceFile):
args = ['rsync', '-hav', sourceFile, destinationDir, '--remove-source-files']
subprocess.call(args)