Yanıtlar:
file.write(f"{var1}\n")
Bunu iki şekilde yapabilirsiniz:
f.write("text to write\n")
veya Python sürümünüze bağlı olarak (2 veya 3):
print >>f, "text to write" # Python 2.x
print("text to write", file=f) # Python 3.x
Kullanabilirsiniz:
file.write(your_string + '\n')
file.write(f"my number is: {number}\n")sadece iyi ve okunabilir.
Yaygın olarak kullanırsanız (çok sayıda yazılı satır), 'file' alt sınıfını kullanabilirsiniz:
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')
Şimdi istediğini yapan ek bir fonksiyon wl sunuyor:
fid = cfile('filename.txt', 'w')
fid.wl('appends newline charachter')
fid.wl('is written on a new line')
fid.close()
Belki farklı yeni satır karakterleri (\ n, \ r, ...) gibi bir şey eksik veya son satır da yeni satırla sonlandırılıyor, ama benim için çalışıyor.
return Noneilk olarak, ikinci her Python fonksiyonu döner ihtiyaç ve yok çünkü bu durumda Nonehiçbir olduğunda varsayılan olarak returnifadesi.
şunları yapabilirsiniz:
file.write(your_string + '\n')
başka bir cevap tarafından önerildiği gibi, ancak file.writeiki kez arayabildiğinizde neden dize birleştirme (yavaş, hataya eğilimli) kullanıyorsunuz :
file.write(your_string)
file.write("\n")
notların aynı şekilde yazıldığından, arabelleklendiğine dikkat edin.
file_path = "/path/to/yourfile.txt"
with open(file_path, 'a') as file:
file.write("This will be added to the next line\n")
veya
log_file = open('log.txt', 'a')
log_file.write("This will be added to the next line\n")
Yalnızca bir not, filedesteklenmiyor Python 3ve kaldırıldı. openDahili işlev için de aynısını yapabilirsiniz .
f = open('test.txt', 'w')
f.write('test\n')
İkili dosyalara yazmadığınız sürece print kullanın. Aşağıdaki örnek csv dosyalarını biçimlendirmek için iyi:
def write_row(file_, *columns):
print(*columns, sep='\t', end='\n', file=file_)
Kullanımı:
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])
Notlar:
'{}, {}'.format(1, 'the_second')- https://pyformat.info/ , PEP-3101*columnsişlev tanımında - listeye herhangi bir sayıda argüman gönderir - * args & ** kwargs hakkındaki soruya bakınFstring kullanarak bir listeden yazan başka bir çözüm
lines = ['hello','world']
with open('filename.txt', "w") as fhandle:
for line in lines:
fhandle.write(f'{line}\n')
Bu sorunu sistematik olarak ayırıcılar olarak üretmek için bu sorunu kendim çözmeye çalıştığım çözüm. Her dizenin dosyanın bir satırı olduğu bir dizeler listesi kullanarak yazar, ancak sizin için de işe yarayabilir gibi görünüyor. (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")? Bu şekilde tüm liste çalışmasını, kontrolü ve sadece 3 satır kaldırabilirsiniz.