问题描述
我正在尝试查看目录中的单个文件以进行修改。
该文件是“csv”,由谷歌表单响应生成。一旦注册了新的响应,它就会更新,这个新条目需要用于创建新对象并存储在数据库中。
作为测试,我尝试更新包含多个文件夹的目录中的示例 .txt 文件。为了完成任务,我使用了看门狗并尝试记录文件夹的修改事件。
文件夹结构如下
-test
|--a.txt
|--fileRandom.txt
.
.
我尝试使用以下代码记录活动
import sys
import time
import logging
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
from datetime import datetime,timedelta
class Handler(FileSystemEventHandler):
def on_modified(self,event):
print(f'event type: {event.event_type} path : {event.src_path}')
if __name__ == "__main__":
path = 'test/wdogfolder'
event_handler = Handler()
observer = Observer()
observer.schedule(event_handler,path,recursive=False)
observer.start()
try:
while True:
time.sleep(1)
except KeyboardInterrupt:
observer.stop()
observer.join()
编辑 a.txt 后,我得到以下日志。
event type: modified path : /test/wdogfolder
event type: modified path : /test/wdogfolder/.goutputstream-CP5LX0
event type: modified path : /test/wdogfolder/.goutputstream-CP5LX0
event type: modified path : /test/wdogfolder
event type: modified path : /test/wdogfolder
event type: modified path : /test/wdogfolder/.goutputstream-J2YCX0
event type: modified path : /test/wdogfolder/.goutputstream-J2YCX0
event type: modified path : /test/wdogfolder
我希望使用 src_path 来破译哪个文件发生了变化,因此一个简单的“if”语句就足以解决问题语句。 但是现在我如何处理仅 a.txt 的修改,因为路径似乎没有提到被修改的文件名。 TIA!
编辑
我正在 ubuntu 18.04 上工作。相同的代码似乎以预期的方式在 Windows 上工作。这背后的原因可能是什么?以及如何规避这个问题?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)