2014-03-20 4 views
0

Я получаю ошибку синтаксиса для строки ниже я не уверен, почему получение генерируется эта ошибка, как ранее работало хорошо, и вдруг он начал бросать эту ошибкуошибка Python Синтаксис во время выполнения

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

Ваше форматирование BORKED, попробуйте использовать «{} "в редакторе, чтобы он выглядел как код, который мы можем прочитать. –

+1

Показать код, который предшествует этой строке. Это может быть связано с блуждающей (закрытой) тройной кавычкой или скобкой, которая начинается, например, перед этой строкой. – unutbu

+0

@MartijnPieters: нет строки, как * отредактировано *, имеет синтаксическую ошибку. Если вы посмотрите оригинальное сообщение от MatjuJain, вы увидите, что между 'sum' и' len' есть '/'. – unutbu

ответ

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) 
Смежные вопросы