我刚开始学习python,而且代码有一些错误,无法运行。你能帮我解决一下吗?它显示
File "ex2.py", line 21
if isRobotRecord(line)
^
SyntaxError: invalid syntax
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()
答案 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规则