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?
Antworten
Zu viele Anzeigen?
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'])
Panos Kal.
Punkte
12112
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:
- Dokumentation drucken
'{}, {}'.format(1, 'the_second')
- https://pyformat.info/ , PEP-3101- ' \t ' - Tabulatorzeichen
*columns
in der Funktionsdefinition - gibt eine beliebige Anzahl von Argumenten an die Liste weiter - siehe Frage zu *args & **kwargs
user1767754
Punkte
20816
KIDUS Sisay
Punkte
27