我有功能问题,但我看不到什么

2024-10-01 05:02:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我知道这样问不好,但我是诚实的,这是我现在的问题。我不知道这样做了,所以我不得不问这个(也不知道我在哪里可以问这个)。我不能调试我的代码,我可以看到当一天的变化,所以我不知道问题在哪里。你知道吗

我的代码是在24小时内拍照并发送到twitter。代码在第一天工作正常,但之后就不再发送照片了。而且我的代码中没有发现任何问题。如果你看到问题,请看一看并说。你知道吗

from twython import Twython
from picamera import PiCamera
from time import sleep
import datetime
import os
sleep(500)

camera = PiCamera()
camera.rotation = 180
datetimeNow = datetime.datetime.now()
oldDate = 0
newDate = 0
photoAlreadyTaken = 0

CONSUMER_KEY = 'sad...'
CONSUMER_SECRET = 'asd...'
ACCESS_TOKEN_KEY = 'fdsf...'
ACCESS_TOKEN_SECRET = 'asd..'

twitter = Twython(CONSUMER_KEY, CONSUMER_SECRET, ACCESS_TOKEN_KEY, 
ACCESS_TOKEN_SECRET)

while True:
    try:
        newDate = datetimeNow.day
    except:
        print("error")  
    if newDate != oldDate:
        if datetimeNow.hour == 14 and photoAlreadyTaken != 1:   
            photoAlreadyTaken = 1
            try:
                camera.start_preview()
                sleep(5)
                camera.capture('/home/pi/strawberry.jpg')
                camera.stop_preview()
            except:
                photoAlreadyTaken = 0

            sleep(5)

            try:
                with open('/home/pi/strawberry.jpg', 'rb') as photo:
                twitter.update_status_with_media(status=str(datetimeNow.day) + "-" + str(datetimeNow.month) + "-" + str(datetimeNow.year), media=photo)
            except:
                photoAlreadyTaken = 0

            oldDate = datetimeNow.day

    else:    #When the first photo is sent this is executed, but I cannot debug how long
        photoAlreadyTaken = 0
    sleep(500)

Tags: key代码fromimporttokendatetimesecretaccess
1条回答
网友
1楼 · 发布于 2024-10-01 05:02:28

在循环的第一个周期之后,newDate和oldDate都相等datetime.datetime.now现在()在脚本永远激活时。你知道吗

关于datetimeNow值的推理有点错误;它是在激活时设置的,而您从不更新它。考虑将datetimeNow(静态值)替换为datetime.datetime.now现在()(给出当前日期时间的函数调用);或者至少在循环中的某个地方更新datetimeNow。你知道吗

祝你好运!你知道吗

相关问题 更多 >