我无法弄清楚为什么这段简单的代码没有运行。
我得到SyntaxError: invalid syntax
。
没有print语句,代码运行正常并且打印正确,但是当我使用print语句时:print ( linebits['core_time'] )
会抛出错误。
这是代码。
#!/usr/bin/python
import string
import sys
import re
log = open("/tmp/log1", "r")
reg_time = re.compile('(time=)(?P<core_time>[1-9]+.\d..)')
def parse_line(arg):
regMatch = reg_time.search(arg)
if regMatch:
linebits = regMatch.groupdict()
pp = float( linebits['core_time'] )
print pp
for line in log:
parse_line(line)
答案 0 :(得分:0)
确保您没有在编辑器中混合空格和制表符 - 您在parse_line中的缩进看起来很可疑。
如果您的编辑器支持它,请在按Tab键时将其设置为使用4个空格。如果它没有,则完全避免使用制表符进行缩进。
您的代码运行正常。不过,我建议进行以下改进:
以下是您的代码符合PEP-8的版本:
#!/usr/bin/python
import re
log = open("/tmp/log1", "r")
reg_time = re.compile(r'(time=)(?P<core_time>[1-9]+.\d..)')
def parse_line(arg):
reg_match = reg_time.search(arg)
if reg_match:
linebits = reg_match.groupdict()
pp = float(linebits['core_time'])
print pp
for line in log:
parse_line(line)