问题描述
嗨,我正在尝试编写一个脚本,让我知道正在更新哪个特定文件,然后在 Outlook 中向我发送相同的电子邮件 -
我的脚本 -
import sys
import os
import time
import logging
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
import glob
def on_created(event):
os.chdir("C:/Users/yaoarian/Desktop/folder")
list_of_files = glob.glob("*.csv")
list_of_files.sort(key=os.path.getmtime)
last_file = list_of_files[len(list_of_files)-1]
print(last_file)
#print(last_file)
print("created")
def on_deleted(event):
print("deleted")
def on_modified(event):
print("modified")
def on_moved(event):
print("moved")
if __name__ == "__main__":
event_handler = FileSystemEventHandler()
# calling functions
event_handler.on_created = on_created
event_handler.on_deleted = on_deleted
event_handler.on_modified = on_modified
event_handler.on_moved = on_moved
path = "C:/Users/yaorian/Desktop/folder"
observer = Observer()
observer.schedule(event_handler,path,recursive=True)
observer.start()
try:
print("Monitoring")
while True:
time.sleep(1)
except KeyboardInterrupt:
observer.stop()
print("terminate")
observer.join()
然而,这个脚本有效,我希望它向我发送有关文件更新的电子邮件警报。我尝试用 powershell 脚本做同样的事情,但没有收到警报
$uncPath = '\\PMI0826\C:\Users\yaorian\Desktop\folder' # enter the UNC path here
$yesterday = (Get-Date).AddDays(-1).Date # set at midnight for yesterday
# get an array of full filenames for any file that was last updates in the last 24 hours
$files = (Get-ChildItem -Path $uncPath -Filter '*.*' -File |
Where-Object { $_.LastWriteTime -ge $yesterday }).FullName
if ($files) {
$message = 'These files were modified in the last 24 hours:{0}{1}' -f [Environment]::NewLine,($files -join [Environment]::NewLine)
$emailTo = 'joel.t@cfio.com'
}
else {
$message = 'There were no files modified in the last 24 hours'
$emailTo = 'joel.t@cfio.com'
}
# output on screen
Write-Host $message
# create a hashtable with parameters for Send-MailMessage
$mailParams = @{
From = 'joel.t@cfiio.com'
To = $emailTo
Subject = 'Something Wrong'
Body = $message
SmtpServer = 'PMI0336.corp.yesgroup.com'
# any other parameters you might want to use
}
# send the email
Send-MailMessage @mailParams
感谢您的帮助。我的计划是设置一个任务调度程序来每天运行我的 .py 应用程序。我的重点是让 python 看门狗脚本向我发送电子邮件,因为我没有使用 powershell 进行调试。谢谢
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)