Python 除了块不 运行
Python except block not running
我的目标是转发和收藏用户时间轴上的第一条推文。如果第一条推文没有被转发或收藏,它会转发这条推文和收藏,否则转到 except 块并打印“已转发”并休眠 5 分钟。
这是我的代码:
for i in iter(int, 1):
for tweet in tweepy.Cursor(api.user_timeline, screen_name='realdonaldtrump', include_rts=False, exclude_replies=True).items(1):
try:
print('\nTweet by: @' + tweet.user.screen_name)
if not tweet.retweeted:
tweet.retweet()
print('Retweeted the tweet')
if not tweet.favorited:
tweet.favorite()
print('Favorited the tweet')
sleep(60)
except:
print('Already retweeted and favorited please be patient till next tweet')
sleep(300)
但是当推文已经被转推时,这里的脚本永远不会进入 except 块。我不知道为什么。请解释如何解决这个问题。
except:
print('Already retweeted and favorited please be patient till next tweet')
sleep(300)
我的日志:
2020-08-04T16:06:14.608937+00:00 app[worker.1]: Tweet by: @realDonaldTrump
2020-08-04T16:06:14.785120+00:00 app[worker.1]: Retweeted the tweet
2020-08-04T16:06:15.013208+00:00 app[worker.1]: Favorited the tweet
2020-08-04T16:07:15.566250+00:00 app[worker.1]: Tweet by: @realDonaldTrump
2020-08-04T16:08:15.822568+00:00 app[worker.1]:
2020-08-04T16:08:15.822615+00:00 app[worker.1]: Tweet by: @realDonaldTrump
2020-08-04T16:09:16.229441+00:00 app[worker.1]:
2020-08-04T16:09:16.229453+00:00 app[worker.1]: Tweet by: @realDonaldTrump
如有任何帮助,我们将不胜感激,并在此先致谢。
except
块仅在 try
块 returns 出错时运行。如果 except
代码从不 运行,那么这意味着没有错误可以从 try
捕获。如果删除 try/except
错误捕获,您可能会发现它们没有给出错误,这就是 except
代码永远不会运行的原因。
试试这个代码
for tweet in tweepy.Cursor(api.user_timeline, screen_name='realdonaldtrump', include_rts=False, exclude_replies=True).items(1):
print('\nTweet by: @' + tweet.user.screen_name)
if not tweet.retweeted or not tweet.favorited:
tweet.retweet()
print('Retweeted the tweet')
tweet.favorite()
print('Favorited the tweet')
else:
print('Already retweeted and favorited please be patient till next tweet')
sleep(300)
sleep(60)
我的目标是转发和收藏用户时间轴上的第一条推文。如果第一条推文没有被转发或收藏,它会转发这条推文和收藏,否则转到 except 块并打印“已转发”并休眠 5 分钟。
这是我的代码:
for i in iter(int, 1):
for tweet in tweepy.Cursor(api.user_timeline, screen_name='realdonaldtrump', include_rts=False, exclude_replies=True).items(1):
try:
print('\nTweet by: @' + tweet.user.screen_name)
if not tweet.retweeted:
tweet.retweet()
print('Retweeted the tweet')
if not tweet.favorited:
tweet.favorite()
print('Favorited the tweet')
sleep(60)
except:
print('Already retweeted and favorited please be patient till next tweet')
sleep(300)
但是当推文已经被转推时,这里的脚本永远不会进入 except 块。我不知道为什么。请解释如何解决这个问题。
except:
print('Already retweeted and favorited please be patient till next tweet')
sleep(300)
我的日志:
2020-08-04T16:06:14.608937+00:00 app[worker.1]: Tweet by: @realDonaldTrump
2020-08-04T16:06:14.785120+00:00 app[worker.1]: Retweeted the tweet
2020-08-04T16:06:15.013208+00:00 app[worker.1]: Favorited the tweet
2020-08-04T16:07:15.566250+00:00 app[worker.1]: Tweet by: @realDonaldTrump
2020-08-04T16:08:15.822568+00:00 app[worker.1]:
2020-08-04T16:08:15.822615+00:00 app[worker.1]: Tweet by: @realDonaldTrump
2020-08-04T16:09:16.229441+00:00 app[worker.1]:
2020-08-04T16:09:16.229453+00:00 app[worker.1]: Tweet by: @realDonaldTrump
如有任何帮助,我们将不胜感激,并在此先致谢。
except
块仅在 try
块 returns 出错时运行。如果 except
代码从不 运行,那么这意味着没有错误可以从 try
捕获。如果删除 try/except
错误捕获,您可能会发现它们没有给出错误,这就是 except
代码永远不会运行的原因。
试试这个代码
for tweet in tweepy.Cursor(api.user_timeline, screen_name='realdonaldtrump', include_rts=False, exclude_replies=True).items(1):
print('\nTweet by: @' + tweet.user.screen_name)
if not tweet.retweeted or not tweet.favorited:
tweet.retweet()
print('Retweeted the tweet')
tweet.favorite()
print('Favorited the tweet')
else:
print('Already retweeted and favorited please be patient till next tweet')
sleep(300)
sleep(60)