Jawaban:
file.write(f"{var1}\n")
Anda dapat melakukan ini dengan dua cara:
f.write("text to write\n")
atau, tergantung pada versi Python Anda (2 atau 3):
print >>f, "text to write" # Python 2.x
print("text to write", file=f) # Python 3.x
Kamu bisa memakai:
file.write(your_string + '\n')
file.write(f"my number is: {number}\n")
baik dan enak dibaca.
Jika Anda menggunakannya secara luas (banyak baris tertulis), Anda dapat mensubklasifikasikan 'file':
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')
Sekarang ia menawarkan fungsi tambahan wl yang melakukan apa yang Anda inginkan:
fid = cfile('filename.txt', 'w')
fid.wl('appends newline charachter')
fid.wl('is written on a new line')
fid.close()
Mungkin saya kehilangan sesuatu seperti karakter baris baru yang berbeda (\ n, \ r, ...) atau bahwa baris terakhir juga diakhiri dengan baris baru, tetapi itu berfungsi untuk saya.
return None
dalam hal ini karena pertama, Anda tidak memerlukannya dan kedua, setiap fungsi Python kembali None
secara default ketika tidak ada return
pernyataan.
Anda bisa melakukan:
file.write(your_string + '\n')
seperti yang disarankan oleh jawaban lain, tetapi mengapa menggunakan penggabungan string (lambat, rawan kesalahan) saat Anda dapat menelepon file.write
dua kali:
file.write(your_string)
file.write("\n")
perhatikan bahwa menulis buffered sehingga jumlah yang sama.
file_path = "/path/to/yourfile.txt"
with open(file_path, 'a') as file:
file.write("This will be added to the next line\n")
atau
log_file = open('log.txt', 'a')
log_file.write("This will be added to the next line\n")
Hanya sebuah catatan, file
tidak didukung Python 3
dan dihapus. Anda dapat melakukan hal yang sama dengan open
fungsi bawaan.
f = open('test.txt', 'w')
f.write('test\n')
Kecuali menulis ke file biner, gunakan cetak. Contoh di bawah ini bagus untuk memformat file csv:
def write_row(file_, *columns):
print(*columns, sep='\t', end='\n', file=file_)
Pemakaian:
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])
Catatan:
'{}, {}'.format(1, 'the_second')
- https://pyformat.info/ , PEP-3101*columns
dalam definisi fungsi - mengirimkan sejumlah argumen ke daftar - lihat pertanyaan pada * args & ** kwargsSolusi lain yang menulis dari daftar menggunakan fstring
lines = ['hello','world']
with open('filename.txt', "w") as fhandle:
for line in lines:
fhandle.write(f'{line}\n')
Ini adalah solusi yang saya buat untuk mencoba memecahkan masalah ini sendiri untuk menghasilkan secara sistematis sebagai pemisah. Itu menulis menggunakan daftar string di mana setiap string adalah satu baris file, namun tampaknya itu dapat bekerja untuk Anda juga. (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")
? Dengan cara ini Anda dapat menghapus semua pekerjaan daftar, cek, dan hanya memiliki 3 baris.