0

我一直在看一个关于如何通过 rasp pi 发送短信的教程。这是我拥有的代码,我不确定为什么会出错。

#!/usr/bin/python 
#----------------------------------- 
# Send SMS Text Message 
# 
# Author : Matt Hawkins 
# Site : http://www.raspberrypi-spy.co.uk/ 
# Date : 30/08/2012 
# 
# Requires account with TxtLocal 
# http://www.txtlocal.co.uk/?tlrx=114032 
#  
#----------------------------------- 

# Import required libraries 
import urllib # URL functions 
import urllib2 # URL functions 

# Define your message 
message = 'Test message sent from my Raspberry Pi' 

# Set your username and sender name. 
# Sender name must alphanumeric and 
# between 3 and 11 characters in length. 
username = 'jonfdom1@aol.com' 
sender = 'Jonny.D' 

# Your unique hash is available from the docs page 
# https://control.txtlocal.co.uk/docs/ 
hash = '8fe5dae7bafdbbfb00c7aebcfb24e005b5cb7be8' 

# Set the phone number you wish to send 
# message to. 
# The first 2 digits are the country code. 
# 44 is the country code for the UK 
# Multiple numbers can be specified if required 
# e.g. numbers = ('447xxx123456','447xxx654321') 
numbers = ('447xxxxxx260') 

# Set flag to 1 to simulate sending 
# This saves your credits while you are 
# testing your code. 
# To send real message set this flag to 0 
test_flag = 1 

#----------------------------------- 
# No need to edit anything below this line 
#----------------------------------- 

values = {'test' : test_flag, 
'uname' : username, 
'hash' : hash, 
'message' : message, 
'from' : sender, 
'selectednums' : numbers } 

url = 'http://www.txtlocal.com/sendsmspost.php' 

postdata = urllib.urlencode(values) 
req = urllib2.Request(url, postdata) 

print 'Attempt to send SMS ...' 

try: 
response = urllib2.urlopen(req) 
response_url = response.geturl() 
if response_url==url: 
print 'SMS sent!' 
except urllib2.URLError, e: 
print 'Send failed!' 
print e.reason

这是我在终端上弹出的错误消息

 File "send_sms.py", line 331
    response = urllib2.urlopen(req) 
           ^
IndentationError: expected an indented block
4

2 回答 2

2

Python 需要适当的缩进,如下所示:

try: 
    response = urllib2.urlopen(req) 
    response_url = response.geturl() 
    if response_url==url: 
        print 'SMS sent!' 
except urllib2.URLError, e: 
    print 'Send failed!' 
    print e.reason

这是Dive Into Python 3 中有关 Python 缩进的部分

于 2013-01-23T17:59:25.450 回答
1
  • 语句分组是通过缩进 [...]

来源

于 2013-01-23T17:58:23.133 回答