我的看门狗python能够检测并在检测到文件创建后运行(通过创建原始文件的副本)。但是,它无法检测到文件保存或文件“上次修改”时间的更改并无法触发代码运行。我怎样才能最好地解决这个问题?我缺少哪一行代码?
如果我可以运行代码 -复制并粘贴(创建复制文件)原始文件 -修改和禁用工作簿文件的共享属性 仅在将代码移至新的网络位置后才开始发生此错误
class MyHandler(PatternMatchingEventHandler):
def on_modified(self, event):
print(f'event type: {event.event_type} path : {event.src_path}')
filename = event.src_path.split("\\")[-1]
checkext = filename.split(".")[-1]
if checkext == "xlsx":
if filename[0] != "~" :
if filename in fileset:
fileset.discard(filename)
print("Duplicate modified event detected")
return
else:
fileset.add(filename)
print("\nFile modified: " + filename)
os.chdir(path)
txtfile = open("filenames.txt", "a+")
txtfile.write(event.src_path + "\n")
txtfile.close()
os.chdir(path+"\\SourceCode")
print("Generating CPK...")
subprocess.call(["python", "file.py"])
if __name__ == "__main__":
try:
path = "\\\\commonFolder\\code"
print("Watching directory...\n----------")
fileset = set()
event_handler = MyHandler()
observer = Observer()
observer.schedule(event_handler, path=path, recursive=True)
observer.start()
try:
while True:
time.sleep(1)
fileset = set()
except KeyboardInterrupt:
observer.stop()
observer.join()
以前,一旦检测到文件保存/更改/创建,看门狗将触发代码运行。 看门狗正在监视位于多个文件夹中的多个文件。
答案 0 :(得分:0)
如果要获取修改日期/时间,可以使用此代码
import time
from datetime import datetime
modTime = os.path.getmtime("filename")
datetime.fromtimestamp(modTime).strftime('%Y-%m-%d H:%M:%S')
idk您到底想在代码中做什么