当前,我有一个文件夹观察器,该观察器基本上检查是否添加了新文件,然后应运行另一个Python脚本进行其他一些执行。另一个python脚本基本上将csv转换为Excel Table格式。 问题在于,在文件进入文件夹后,第一次运行/尝试会执行它应该执行的所有操作,但是每当添加第二个文件时...。它只是忽略运行其他Python脚本。 我想念什么?
观察者:
def on_created(event):
print(f"Hey, {event.src_path} has been created!\n")
print(f"The other Python file will now be run\n")
time.sleep(5)
import TableRun
def on_deleted(event):
print(f"What the f**k! Someone deleted {event.src_path}!\n")
def on_modified(event):
print(f"Hey hey hey, {event.src_path} has been modified \n")
def on_moved(event):
print(f"Ok ok ok, someone moved {event.src_path} to {event.dest_path}")
if __name__ == "__main__":
patterns = "*"
ignore_patterns = ""
ignore_directories = False
case_sensitive = True
my_event_handler = PatternMatchingEventHandler(patterns, ignore_patterns, ignore_directories, case_sensitive)
my_event_handler.on_created = on_created
my_event_handler.on_deleted = on_deleted
my_event_handler.on_modified = on_modified
my_event_handler.on_moved = on_moved
path = str(current_path+"String of path")
go_recursively = True
my_observer = Observer()
my_observer.schedule(my_event_handler, path, recursive=go_recursively)
my_observer.start()
try:
while True:
time.sleep(1)
except KeyboardInterrupt:
my_observer.stop()
my_observer.join()```
答案 0 :(得分:1)
一个文件只能导入一次。第一次运行import TableRun
时,代码会加载并执行,但是每当您遇到该语句时,它都是空操作。
正确的解决方案是将import
语句移至代码顶部,重写TableRun
,以使其不执行import
上的代码,并替换现有的{{1 }}带有函数调用的语句。例如:
import