Что вы имеете в виду, что он не работает?
Прежде всего, rjust
собирается включить символы в строку.Похоже, что вы хотите, чтобы rjust
из около 8, чтобы получить интервал, который вы ищете с такими строками, как "test1"
.
Во-вторых, потому что ваш отпечаток не имеет запятой в конце, он будетнапечатать каждый на новой строке.Вы, вероятно, хотите что-то вроде:
print >> textfile, string.rjust(listname[i],8),
Затем, после того, как вы вышли из цикла, вам нужно напечатать новую строку:
print >> textfile
Теперь у нас есть пробел в началелиния, потому что мы rjust
первый элемент в списке.Вы на самом деле, вероятно, хотите такое поведение, потому что тогда столбцы выстроятся в линию, другой вариант - использовать ljust
.
Некоторые незначительные предложения по стилю:
i=0
ничего не делает здесь;оно будет перезаписано for item in listname
, вероятно, лучше, чем то, что вы делаете range
. - вместо
string.rjust
, вам нужно просто вызвать rjust
для самой строки,как: listname[i].rjust(8)
Если вы хотите быть хитрым с join
и пониманием списка, вы можете сделать:
print >> textfile, ' '.join(item.rjust(8) for item in listname)
Это делает rjust
на все элементы, затем соединяет их вместе пробелом (здесь вы также можете использовать пустую строку).