2016-11-24 12 views
-3

я печатаю мой вывод в файл с помощью следующей команды:Как печатать с добавлением, настраиваемым разделителем и подавлять конечное пространство в Python 2?

print >> outfile, columns2[0],"\t",columns2[1],"\t",columns2[2] 

Моя проблема заключается в том, что у меня есть «пространство» в конце содержания каждого столбца.

Я знаю, что несколько раз она может быть решена с sep:

print('foo', 'bar', sep='') 

Но я не знаю, как реализовать sep при записи в файл с моей командой выше:

print >> outfile 
+1

Почему вы не пишете файл? –

+0

Я думаю, что он говорит о пространстве, вставленном в каждую запятую, а не в NL. – totoro

+0

Вы спрашиваете о Python 3 или 2? Если Python 3, это может быть замкнуто-как-дубликат [синтаксиса python help sep = "", '\ t'] (http://stackoverflow.com/questions/22116482/python-syntax-help-sep-t) – smci

ответ

0

print() функция может использоваться для печати в любом файле, а не только sys.stdout. Попробуйте:

from __future__ import print_function 

print(*columns2, sep="\t", file=outfile) 

Из документации на print():

print(*objects, sep=' ', end='\n', file=sys.stdout)

The file argument must be an object with a write(string) method; if it is not present or None , sys.stdout will be used.

0

Вы можете использовать файл write метод, используя метод записи не будет иметь дополнительный символ новой строки в конце. Рекомендуется использовать строку присоединиться метод более + оператора, а также

outfile.write('\t'.join(column2)) 
# add + '\n' if need the new line 
# use column2[:2] if you have more items in list and only need slice of them 
+0

Ваша команда соединения очень интересна, но я получаю следующую ошибку: «name« join »не определен» – Pol

+0

Не должно быть ошибки, я протестировал работу, убедитесь, что у вас есть точно '' \ t'.join', дважды проверьте '' \ t'.' перед соединением – Skycc

+0

Вы были правы Я написал «,» вместо «.». – Pol

2

Пространство поставляется с использованием запятых в print (Python 2.7?).

print >> outfile, '\t'.join(columns2) 

Необходимо решить эту проблему.

+0

Прекрасно работает, спасибо – Pol

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

  • Нет связанных вопросов^_^