执行时出现Python语法错误

时间:2014-03-20 13:37:45

标签: python

我收到下面一行的语法错误我不知道为什么这个错误会产生,因为之前它曾经工作正常并突然开始抛出此错误

myfile.write('\n'+str(serverAndInstance)+','+str(GCOverHead)+','+str(min(usedAfterGc))+','+str(max(usedAfterGc))+','+str(sum(usedAfterGc)/len(usedAfterGc))+',0,0')

1 个答案:

答案 0 :(得分:0)

您发布的广告内容非常合适,这意味着前一行缺少结束)]}括号,括号或支撑:

>>> something = (something_else + str(whatever)
... myfile.write('\n'+str(serverAndInstance)+','+str(GCOverHead)+','+str(min(usedAfterGc))+','+str(max(usedAfterGc))+','+str(sum(usedAfterGc)/len(usedAfterGc))+',0,0')
  File "<stdin>", line 2
    myfile.write('\n'+str(serverAndInstance)+','+str(GCOverHead)+','+str(min(usedAfterGc))+','+str(max(usedAfterGc))+','+str(sum(usedAfterGc)/len(usedAfterGc))+',0,0')
         ^
SyntaxError: invalid syntax

这里是something行缺少一个右括号(2次(但只有一个))但Python在解析之前不知道它丢失了下一行。

你真的应该使用csv module代替将逗号分隔的值写入文件,如果使用的话,你的行可读性会更高:

with open(outputfile, 'wb') as outfh:
    csvwriter = csv.writer(outfh)
    for something in some_iterable:
        # ...

        row = [serverAndInstance, GCOverHead, min(usedAfterGc), max(usedAfterGc), 
               sum(usedAfterGc) / len(usedAfterGc), 0, 0]
        csvwriter.writerow(row)