Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何检查已删除的文件是否已被修改_Python_Bash_File_Directory - Fatal编程技术网

Python 如何检查已删除的文件是否已被修改

Python 如何检查已删除的文件是否已被修改,python,bash,file,directory,Python,Bash,File,Directory,我正在编写一个bash-Python脚本,用于检查文件目录(/home/pi/owncloud)中的任何文件是否已被删除。如果目录已被删除,将打印一条消息。如何检查文件是否已从目录中删除 #!/bin/bash message="file has been deleted" if []//this is where i check directory then echo $message 您可以创建一个无限循环来检查给定目录中的文件数量,一旦数量发生变化,它就会在控制台上显示

我正在编写一个bash-Python脚本,用于检查文件目录(/home/pi/owncloud)中的任何文件是否已被删除。如果目录已被删除,将打印一条消息。如何检查文件是否已从目录中删除

#!/bin/bash

message="file has been deleted"

if []//this is where i check directory
then 
      echo $message

您可以创建一个无限循环来检查给定目录中的文件数量,一旦数量发生变化,它就会在控制台上显示print语句

只有在脚本执行期间删除文件时,此方法才有效

import os

path  = "path/to/directory"

initial_files = len(os.listdir(path)))

while True:
    if len(os.listdir(path))) != initial_files:
        print "Some file(s) may be deleted or added"
        break

如果这是在Linux上,我会使用

如果你不能做到这一点,你可以做一些类似于anmol_uppal所做的事情,只是定期对目录中的文件名进行
设置
,并检查其是否已更改


如果您想使用bash触发此操作(并且在Linux上),可以使用。

您不能说是否已删除,但可以说它是否存在。这就是你想要的吗?你所说的“bash-python脚本”到底是什么意思。脚本可以是bash或python。不是两者都有(除非你在做一些技巧性的编程)。这是一个热循环。您应该在它里面放一个睡眠或其他东西,以防止它占用CPU。此外,这只检查文件的数量。不是他们的名字或内容。一次删除和一次添加不会触发它。是的,可能是这样,但如果OP选择延迟通知,这取决于OP。除非删除和添加同时进行,否则肯定会触发。如果任何文件被删除,循环将随时中断,他必须再次运行脚本。尽管bash不太可能在Windows上运行,但有一个类似的模块称为watcher