2016-07-04 9 views
0

Ich habe ein Wörterbuch:Wie können ganze Textzeichenfolgen in Textdateien eingerückt werden?

page_info = {'LISTS':['string 1', 'string 2']} 

Ich möchte mit dem Wort in eine Textdatei drucken ‚Listen‘ ist der Header und Werte der wichtigsten darunter und gegliederte ein Raum auf der rechten Seite erscheinen.

with codecs.open(stats_file, 'a', encoding="utf8") as file: 
    file.write('LISTS:' + '\n') 
    for tag in page_info['LISTS']: 
     file.write('\t' + tag + '\n\n') 

Hier Ausgabe an die Datei: enter image description here

Wie Sie sehen, nur die erste Zeile wird für jede Saite eingerückt. Wie würde ich den gesamten Textblock für eine Zeichenfolge einrücken?

+0

Sie müssten jeden dieser Strings in ihre eigenen Zeilen aufteilen und jeden einrücken. Da Sie nur mit der Zeichenkette als Ganzes zu tun haben, tun Sie nie etwas über die internen Zeilenumbrüche, nur die erste Zeile. –

Antwort

2

Verwenden Sie die textwrap module Ihre Zeilen wickeln und fügen Vertiefung zu jeder Zeile:

wrapper = textwrap.TextWrapper(initial_indent='\t', subsequent_indent='\t') 
for tag in page_info['LISTS']: 
    wrapped = wrapper.fill(tag) 
    file.write(wrapped + '\n') 

Sie können auch ein width Argument angeben möchten; Der Standardwert ist auf 70 Zeichen festgelegt.