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 None
ilk olarak, ikinci her Python fonksiyonu döner ihtiyaç ve yok çünkü bu durumda None
hiçbir olduğunda varsayılan olarak return
ifadesi.
şunları yapabilirsiniz:
file.write(your_string + '\n')
başka bir cevap tarafından önerildiği gibi, ancak file.write
iki 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, file
desteklenmiyor Python 3
ve kaldırıldı. open
Dahili 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*columns
iş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.