Antworten:
Verwenden Sie "\ n":
file.write("My String\n")
Weitere Informationen finden Sie im Python-Handbuch .
file.write(f"{var1}\n")
Sie können dies auf zwei Arten tun:
f.write("text to write\n")
oder, abhängig von Ihrer Python-Version (2 oder 3):
print >>f, "text to write" # Python 2.x
print("text to write", file=f) # Python 3.x
Sie können verwenden:
file.write(your_string + '\n')
file.write(f"my number is: {number}\n")
ist gut und lesbar.
Wenn Sie es häufig verwenden (viele geschriebene Zeilen), können Sie 'Datei' in Unterklassen unterteilen:
class cfile(file):
#subclass file to have a more convienient use of writeline
def __init__(self, name, mode = 'r'):
self = file.__init__(self, name, mode)
def wl(self, string):
self.writelines(string + '\n')
Jetzt bietet es eine zusätzliche Funktion, die macht, was Sie wollen:
fid = cfile('filename.txt', 'w')
fid.wl('appends newline charachter')
fid.wl('is written on a new line')
fid.close()
Vielleicht fehlen mir so etwas wie verschiedene Zeilenumbrüche (\ n, \ r, ...) oder dass die letzte Zeile auch mit einem Zeilenumbruch abgeschlossen wird, aber das funktioniert bei mir.
return None
Dies ist in diesem Fall nicht erforderlich, da erstens Sie es nicht benötigen und zweitens jede Python-Funktion None
standardmäßig zurückgegeben wird, wenn keine return
Anweisung vorhanden ist.
du könntest es tun:
file.write(your_string + '\n')
Wie in einer anderen Antwort vorgeschlagen, aber warum sollten Sie die Verkettung von Zeichenfolgen (langsam, fehleranfällig) verwenden, wenn Sie file.write
zweimal aufrufen können :
file.write(your_string)
file.write("\n")
Beachten Sie, dass Schreibvorgänge gepuffert sind, sodass es sich um dasselbe handelt.
file_path = "/path/to/yourfile.txt"
with open(file_path, 'a') as file:
file.write("This will be added to the next line\n")
oder
log_file = open('log.txt', 'a')
log_file.write("This will be added to the next line\n")
Nur eine Notiz, file
wird in nicht unterstützt Python 3
und wurde entfernt. Sie können dasselbe mit der open
eingebauten Funktion tun .
f = open('test.txt', 'w')
f.write('test\n')
Verwenden Sie print, es sei denn, Sie schreiben in Binärdateien. Das folgende Beispiel eignet sich zum Formatieren 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) # newline
write_row(f, data[0], data[1])
Anmerkungen:
'{}, {}'.format(1, 'the_second')
- https://pyformat.info/ , PEP-3101*columns
in der Funktionsdefinition - sendet eine beliebige Anzahl von Argumenten zur Liste - siehe Frage zu * args & ** kwargsEine 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')
Dies ist die Lösung, die ich gefunden habe, um dieses Problem für mich selbst zu lösen und systematisch \ n als Trennzeichen zu erzeugen. Es wird mit einer Liste von Zeichenfolgen geschrieben, wobei jede Zeichenfolge eine Zeile der Datei ist. Es scheint jedoch, dass dies auch für Sie funktioniert. (Python 3. +)
#Takes a list of strings and prints it to a file.
def writeFile(file, strList):
line = 0
lines = []
while line < len(strList):
lines.append(cheekyNew(line) + strList[line])
line += 1
file = open(file, "w")
file.writelines(lines)
file.close()
#Returns "\n" if the int entered isn't zero, otherwise "".
def cheekyNew(line):
if line != 0:
return "\n"
return ""
with open(path, "w") as file: for line in strList: file.write(line + "\n")
? Auf diese Weise können Sie alle Listenarbeiten und Überprüfungen entfernen und haben nur 3 Zeilen.