Строки и файл - PullRequest
       31

Строки и файл

2 голосов
/ 21 мая 2009

Предположим, это мой список языков.

aList = ['Python','C','C++','Java']

Как я могу записать в файл как:

Python      : ...
C           : ...
C++         : ...
Java        : ...

Я использовал rjust () для достижения этой цели. Без этого как я могу обойтись?

Здесь я сделал вручную. Я хочу избежать этого, т.е. заказывается автоматически .

Ответы [ 3 ]

5 голосов
/ 21 мая 2009

Ты имеешь в виду это?

>>> languages = ['Python','C','C++','Java']
>>> f = open('myfile.txt', 'w')
>>> print('\n'.join('%-10s: ...' % l for l in languages), file=f)
>>> f.close()
>>> print(open('myfile.txt').read())
Python    : ...
C         : ...
C++       : ...
Java      : ...

Используется мини-язык спецификации формата . Обратите внимание, что оператор print использует синтаксис 3.0. (Да, я изменил это, поскольку ответ Брайана содержит ссылки на документы 2.5.2. Просто для контраста.)

5 голосов
/ 21 мая 2009

Вы можете сделать это с помощью форматирования строки операторов

f=open('filename.txt','w')
for item in aList:
    print >>f, "%-20s : ..." % item

20 - это ширина поля, в то время как «-» указывает на выравнивание влево.

0 голосов
/ 21 мая 2009

Автоматическое определение позиции двоеточия (с использованием максимальной ширины) и языкового порядка (отсортировано по алфавиту):

languages = ['Python','C','C++','Java']
maxlen = max(map(len, languages))
with open('langs.txt', 'w') as f:
    for L in sorted(languages):
        f.write('%-*s: ...\n'% (maxlen, L)) 

print open('langs.txt').read()

Выход:

C     : ...
C++   : ...
Java  : ...
Python: ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...