2016-06-25 10 views
1

Ich habe eine lange Zeichenfolge, die ich mit dem Code in einer Textdatei gespeichert werden soll:Python Saving lange Zeichenkette in Textdatei

taxtfile.write(a)

sondern weil die Zeichenfolge zu lang ist, die gespeicherte Datei druckt als :

"something something ..... something something" 

Wie stelle ich sicher, dass es die gesamte Zeichenfolge speichert, ohne es abzuschneiden?

+0

Haben Sie versucht, es mit "" "" "" zu umbrechen, um es als Mehrfachzeile zu verwenden? http://stackoverflow.com/questions/10660435/pythonic-way-to-create-a-long-multi-line-string – dmitryro

+0

Warum denken Sie, dass es abgeschnitten wird? Zeigen Sie den Rest Ihres Codes –

+1

es scheint, als ob dies nur eine Darstellung in Ihrem IDE/Terminal ist. Haben Sie den Inhalt der Datei nach dem Schreiben bestätigt? –

Antwort

1

sollte es unabhängig von der Stringlänge arbeiten

dies ist der Code, den ich gemacht, es zu zeigen:

import random 

a = '' 
number_of_characters = 1000000 
for i in range(number_of_characters): 
    a += chr(random.randint(97, 122)) 
print(len(a))  # a is now 1000000 characters long string 

textfile = open('textfile.txt', 'w') 
textfile.write(a) 
textfile.close() 

Sie Anzahl_Zeichen zu, was Nummer setzen Sie wie aber, als Sie müssen String warten auf

und das ist Screenshot von textfile.txt randomisiert: http://prntscr.com/bkyvs9

Wahrscheinlich liegt Ihr Problem in der Zeichenkette a.

0

Ich denke, das ist nur eine Darstellung in Ihrer IDE oder Terminal-Umgebung. Versuchen Sie so etwas wie die folgenden, öffnen Sie die Datei und sehen Sie selbst, wenn seine Schrift in ihrer Gesamtheit:

x = 'abcd'*10000 
with open('test.txt', 'w+') as fh: 
    fh.write(x) 

Notiere die die oben wird eine Datei schreiben, was auch immer Ihr aktuelles Arbeitsverzeichnis ist. Vielleicht möchten Sie zuerst zu Ihrem ~/Desktop navigieren, bevor Sie Python aufrufen.

Wie bauen Sie die Zeichenfolge a? Wie wird textfile geschrieben? Wenn der Aufruf an textfile.write(a) innerhalb einer Schleife auftritt, liegt möglicherweise ein Fehler in der Schleife vor. (Mehr von Ihrem Code angezeigt würde helfen)