python syntaxerror

时间:2012-12-04 07:48:10

标签: python

我刚开始学习python,而且代码有一些错误,无法运行。你能帮我解决一下吗?它显示

File "ex2.py", line 21
if isRobotRecord(line)
                     ^
SyntaxError: invalid syntax

ex2.py

import time
robot_emails = ["googlebot@google.com"]
robot_emails.append("66.249.74.228")
robot_emails.append("61.147.110.22")
robot_emails.append("61.147.110.21")
robot_emails.append("61.147.112.231")
f = open("/opt/CLiMB/Storage1/log/vsftp.log")
def isRobotRecord(line):
    for email in robot_emails:
            if email in line.split("Client")[1]:
                    return False
    return True
def OnlyRecent(line):
    if  time.strptime(line.split("[")[0].strip(),"%a %b %d %H:%M:%S %Y")> time.gmtime(time.time()-(60*60*24*7)):
        return True
    return False
filename= time.strftime('%Y%m%d')+'.log'
f1= open(filename,'w')
for line in f:
    if OnlyRecent(line):
            if isRobotRecord(line)
                    print line
                    f1.write(line)
f.close()
f1.close()

3 个答案:

答案 0 :(得分:0)

你在该行的末尾错过了一个冒号:

if isRobotRecord(line):

答案 1 :(得分:0)

至少,您需要:语句末尾的if。这就是造成错误的原因,类似于以下成绩单:

pax> cat good.py 
for plugh in (1,2,3):
    print plugh

pax> python good.py 
1
2
3

pax> cat bad.py 
for plugh in (1,2,3)
    print plugh

pax> python bad.py 
  File "bad.py", line 1
    for plugh in (1,2,3)
                       ^
SyntaxError: invalid syntax

您可能还想查看缩进 - 看起来if语句可能会缩进太多次。尽管您似乎在其他任何地方使用 four ,但它与前一行之间存在八个空格差异。

在缩进如此重要的语言中,你必须特别小心。

答案 2 :(得分:0)

你需要把每个行的':'字符结尾放在if,else,elif,while,for,def,class等之外。另外我建议你在编写python时尝试遵守this规则