2013-05-16 6 views
1

Я ударил головой о том, почему этот код вставляет две новые строки вместо одной. Может кто-нибудь помочь?Две новые строки вместо одной

file=open('16052013') 
for line in file: 
    line=line.strip() 
    splitLine=line.split("\t") 
    strSentence=splitLine[2] 
    caseId=splitLine[0] 
    for word in strSentence.split(): 
     word=word.strip() 
     print caseId,'\t',word 
    print '\n' 
+2

изменить 'print '\ n'', чтобы просто' print' – wim

+0

'print' будет автоматически новой строкой. и если вы не хотите новую строку, вы можете добавить «запятую» после 'print'. Просто «print xxx», « –

+0

» вам следует избегать идентификатора «файл», поскольку он затеняет встроенный: http://docs.python.org/2/library/functions.html?highlight=file#file – Francesco

ответ

4

Оператор печати, если значения, переданные ему в конце запятой, всегда добавляют дополнительную строку новой строки.

+0

Спасибо! Отлично . Я могу принимать только через 10 минут :) – Dominix

4

Инструкция print автоматически добавляет новую строку. Вам не нужно снова делать print '\n'. файл таким образом файл закрываются, как только вы выходите из сферы действия with заявления и избежать теневого встроенное имени»:

Кроме того, было бы лучше, если бы вы использовали with open('fileName') as f: в ваших программах вместо file = open('fileName') ».

+0

Спасибо. +1. Спасибо за дополнительные «хорошие» советы. – Dominix

+0

Спасибо @Francesco, полностью соскользнул с ума. –

+0

@SukritKalra приветствую вас и не волнуйтесь, я быстро это заметил, потому что я тоже это сделал (это не опыт, приобретенный таким образом? :-)) – Francesco

Смежные вопросы