我编写了一个 Python 脚本,它以特定的时间间隔截取我的电脑的屏幕截图,并将该屏幕截图发送到我的 S3 存储桶。当我使用 python 命令运行我的脚本时,它有效,但是当我使用 pythonw.exe 命令将此脚本作为后台任务运行时,屏幕截图捕获操作有效 - 但没有任何内容上传到 S3。
这是我的代码:
import os
import sys
import time
import Image
import ImageGrab
import getpass
import boto3
import threading
from random import randint
s3 = boto3.resource('s3')
username = getpass.getuser()
#---------------------------------------------------------
#User Settings:
SaveDirectory=r'C:\Users\Md.Rezaur\Dropbox\Screepy_App\screenshot'
ImageEditorPath=r'C:\WINDOWS\system32\mspaint.exe'
def capture_and_send():
interval = randint(10,30)
threading.Timer(interval, capture_and_send).start ()
img=ImageGrab.grab()
saveas=os.path.join(SaveDirectory,'ScreenShot_'+time.strftime('%Y_%m_%d_%H_%M_%S')+'.jpg')
fname = 'ScreenShot_'+time.strftime('%Y_%m_%d_%H_%M_%S')+'.jpg'
img.save(saveas, quality=50, optimize=True)
editorstring='""%s" "%s"'% (ImageEditorPath,saveas)
data = open(fname, 'rb')
s3.Bucket('screepy').put_object(Key=username+'/'+fname, Body=data)
capture_and_send()
如果您没有配置 aws 凭证,请安装 aws-cli 并运行命令:
aws configure
感谢亚历克斯·泰勒。
启动后pythonw.exe程序找不到当前目录。以下行已更改:
data = open(SaveDirectory+'\\'+fname, 'rb')
我是一名优秀的程序员,十分优秀!