0

Let's say I have a script that checks this one folder to see if there is anything in there that I want.

I'd like to have this script run somewhere in the background (this would be cooler) or execute every 2 hours or so and send me an email if there is anything found.

how can I do this?

Knowledge Cube
  • 990
  • 12
  • 35
ymyook
  • 23
  • 6
  • 1
    Are you asking how to *make* this or how to *do* this? Because if it is the latter then this question belongs on one of the other SE websites. – stelioslogothetis May 16 '17 at 19:56
  • All major operating systems have mechanisms to periodically dispatch jobs. This isn't python related - the mechanism works for any executable. Lookup cron and Task Scheduler and you'll cover most systems. – tdelaney May 16 '17 at 19:58

1 Answers1

1

So you essentially have two parts:

1) How to set up my a scheduled script?

Assuming you're on Windows you can follow the steps here: Schedule Python Script - Windows 7 to set up a scheduled script either through the gui or the command line. The output of that script can be boolean in nature and prompt the execution of the second part of your question.

2) How to send an email?

For this you could try this code:

# Import smtplib for the actual sending function
import smtplib

# Import the email modules we'll need
from email.mime.text import MIMEText

# Open a plain text file for reading.  For this example, assume that
# the text file contains only ASCII characters.
fp = open(textfile, 'rb')
# Create a text/plain message
msg = MIMEText(fp.read())
fp.close()

# me == the sender's email address
# you == the recipient's email address
msg['Subject'] = 'The contents of %s' % textfile
msg['From'] = me
msg['To'] = you

# Send the message via our own SMTP server, but don't include the
# envelope header.
s = smtplib.SMTP('localhost')
s.sendmail(me, [you], msg.as_string())
s.quit()

More information for this step can be found here: How to send an email with Python?

Community
  • 1
  • 1
William
  • 154
  • 9