2009-05-21 10 views
2

Angenommen, das ist meine Liste der Sprachen.Strings und Datei

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

Wie kann ich in eine Datei schreiben wie:

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

I verwendet rjust haben(), dies zu erreichen. Ohne es, wie kann ich tun?

Hier habe ich manuell getan. Ich möchte vermeiden das, dh; es sollte automatisch bestellt sein.

+0

-1: Kein Code zur Verfügung gestellt. –

Antwort

5

Sie können dies mit string formatting Betreiber

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

Die 20 ist die Feldbreite, während die „-“ es rechtfertigen nach links zeigt.

5

Meinst du das?

>>> 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  : ... 

Dies nutzt die format specification mini language. Beachten Sie, dass die Anweisung print 3.0-Syntax verwendet. (Ja, ich änderte sich dies seit Brian's Antwort Links zu den 2.5.2 docs Just for Kontrast..)

0

automatisch Kolon Position bestimmen (mit max Breite) und Sprache um (alphabetisch sortiert):

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() 

Ausgang :

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