Відповіді:
file.write(f"{var1}\n")
Це можна зробити двома способами:
f.write("text to write\n")
або, залежно від вашої версії Python (2 або 3):
print >>f, "text to write" # Python 2.x
print("text to write", file=f) # Python 3.x
Ви можете використовувати:
file.write(your_string + '\n')
file.write(f"my number is: {number}\n")
просто чудово і читабельно.
Якщо ви широко використовуєте його (багато написаних рядків), ви можете підкласировать "файл":
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')
Тепер він пропонує додаткову функцію, яка виконує те, що ви хочете:
fid = cfile('filename.txt', 'w')
fid.wl('appends newline charachter')
fid.wl('is written on a new line')
fid.close()
Можливо, я пропускаю щось на зразок різних символів нового рядка (\ n, \ r, ...) або що останній рядок також закінчується новим рядком, але він працює для мене.
return None
цьому випадку вам не потрібно, оскільки, по-перше, він вам не потрібен, а по-друге, кожна функція Python повертається None
за замовчуванням, коли немає return
заяви.
Ви можете зробити:
file.write(your_string + '\n')
як запропоновано іншою відповіддю, але навіщо використовувати об'єднання рядків (повільне, схильне до помилок), коли ви можете дзвонити file.write
двічі:
file.write(your_string)
file.write("\n")
зауважте, що записи буферизовані, тож це те саме.
file_path = "/path/to/yourfile.txt"
with open(file_path, 'a') as file:
file.write("This will be added to the next line\n")
або
log_file = open('log.txt', 'a')
log_file.write("This will be added to the next line\n")
Просто примітка, file
не підтримується Python 3
та видалено. Можна зробити те ж саме із open
вбудованою функцією.
f = open('test.txt', 'w')
f.write('test\n')
Якщо не записувати у двійкові файли, використовуйте print. Нижче приклад хороший для форматування файлів CSV:
def write_row(file_, *columns):
print(*columns, sep='\t', end='\n', file=file_)
Використання:
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])
Примітки:
'{}, {}'.format(1, 'the_second')
- https://pyformat.info/ , PEP-3101*columns
у визначенні функції - передає будь-яку кількість аргументів до списку - див. питання про * args & ** kwargsЩе одне рішення, яке пише зі списку за допомогою fstring
lines = ['hello','world']
with open('filename.txt', "w") as fhandle:
for line in lines:
fhandle.write(f'{line}\n')
Це рішення, яке я придумав, щоб спробувати вирішити цю проблему для себе, щоб систематично виробляти \ n'а як роздільники. Він пише, використовуючи список рядків, де кожен рядок - це один рядок файлу, однак, здається, він може працювати і для вас. (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")
? Таким чином ви можете видалити всі роботи зі списку, чек і мати лише 3 рядки.