425 Stimmen

Zeichenkette jedes Mal in einer neuen Zeile in eine Datei schreiben

Ich möchte jedes Mal einen Zeilenumbruch an meinen String anhängen, wenn ich file.write() . Wie lässt sich dies in Python am einfachsten bewerkstelligen?

17voto

citynorman Punkte 4182

Eine andere Lösung, die mit fstring aus einer Liste schreibt

lines = ['hello','world']
with open('filename.txt', "w") as fhandle:
  for line in lines:
    fhandle.write(f'{line}\n')

Und als Funktion

def write_list(fname, lines):
    with open(fname, "w") as fhandle:
      for line in lines:
        fhandle.write(f'{line}\n')

write_list('filename.txt', ['hello','world'])

13voto

Panos Kal. Punkte 12112
file_path = "/path/to/yourfile.txt"
with open(file_path, 'a') as file:
    file.write("This will be added to the next line\n")

o

log_file = open('log.txt', 'a')
log_file.write("This will be added to the next line\n")

9voto

Mesco Punkte 997

Wenn Sie nicht in Binärdateien schreiben wollen, verwenden Sie print. Das folgende Beispiel eignet sich gut für die Formatierung von csv-Dateien:

def write_row(file_, *columns):
    print(*columns, sep='\t', end='\n', file=file_)

Verwendung:

PHI = 45
with open('file.csv', 'a+') as f:
    write_row(f, 'header', 'phi:', PHI, 'serie no. 2')
    write_row(f)  # additional empty line
    write_row(f, data[0], data[1])

Anmerkungen:

4voto

user1767754 Punkte 20816

Nur eine Anmerkung, file wird nicht unterstützt in Python 3 und wurde entfernt. Sie können dasselbe mit dem open eingebaute Funktion.

f = open('test.txt', 'w')
f.write('test\n')

3voto

KIDUS Sisay Punkte 27

Ok, hier ist ein sicherer Weg, dies zu tun.

with open('example.txt', 'w') as f:
 for i in range(10):
  f.write(str(i+1))
  f.write('\n')

Damit wird jede Zahl von 1 bis 10 in eine neue Zeile geschrieben.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X