Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.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_Linux_Networking_Directory_Md5sum - Fatal编程技术网

使用python脚本获取目录中添加、删除和修改的文件列表

使用python脚本获取目录中添加、删除和修改的文件列表,python,linux,networking,directory,md5sum,Python,Linux,Networking,Directory,Md5sum,我编写了一个Python脚本,它将获得目录中所有文件的md5sum(linux) 现在我想从该目录中获取添加、删除和修改的文件列表 from commands import getoutput import os import hashlib from os import walk files = [] for dirpath, dirnames, filenames in walk('/home/omkarp/testmd'): for file in filenames:

我编写了一个Python脚本,它将获得目录中所有文件的md5sum(linux) 现在我想从该目录中获取添加、删除和修改的文件列表

from commands import getoutput
import os
import hashlib
from os import walk
files = []
for dirpath, dirnames, filenames in walk('/home/omkarp/testmd'):
    for file in filenames:
        files.append(os.path.join(dirpath,file))

md5_cmd = "md5sum %s"
md5sum = []
for f in files:
    md5sum.append(getoutput(md5_cmd % (f)))
#print md5sum
dict_md = {}
for d in md5sum:
    var = d.split(" ")
    dict_md[var[2]] = var[0]
print dict_md
fp = open("/home/omkarp/md5sum.txt", 'w')
#for md5 in md5sum:
    #fp.write(md5 + "\n")
fp.write(str(dict_md))
fp.close()

你可以这样做:

import ast

fp = open("md5sum.txt", 'r')
contents = fp.read()

dictionary = ast.literal_eval(contents) # evaluates file content as a dictionnary

for key, value in dict_md.items():
    try:
        sum = dictionary[key]
    except KeyError: # If the key is not in the dictionnary
        print "New file"
    if sum!=value: # If the md5sum is different
        print "File modified"