Câu trả lời:
file.write(f"{var1}\n")
Bạn có thể làm điều này theo hai cách:
f.write("text to write\n")
hoặc, tùy thuộc vào phiên bản Python của bạn (2 hoặc 3):
print >>f, "text to write" # Python 2.x
print("text to write", file=f) # Python 3.x
Bạn có thể dùng:
file.write(your_string + '\n')
file.write(f"my number is: {number}\n")
là tốt và có thể đọc được.
Nếu bạn sử dụng nó rộng rãi (rất nhiều dòng viết), bạn có thể phân lớp 'tập tin':
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')
Bây giờ nó cung cấp một chức năng bổ sung wl thực hiện những gì bạn muốn:
fid = cfile('filename.txt', 'w')
fid.wl('appends newline charachter')
fid.wl('is written on a new line')
fid.close()
Có thể tôi đang thiếu một cái gì đó như các ký tự dòng mới khác nhau (\ n, \ r, ...) hoặc dòng cuối cùng cũng bị chấm dứt với một dòng mới, nhưng nó hoạt động với tôi.
return None
trong trường hợp này bởi vì trước tiên, bạn không cần nó và thứ hai, mọi hàm Python đều trả về None
theo mặc định khi không có return
câu lệnh nào .
bạn có thể làm:
file.write(your_string + '\n')
như được đề xuất bởi một câu trả lời khác, nhưng tại sao lại sử dụng nối chuỗi (chậm, dễ bị lỗi) khi bạn có thể gọi file.write
hai lần:
file.write(your_string)
file.write("\n")
lưu ý rằng ghi được đệm để nó tương tự như vậy.
file_path = "/path/to/yourfile.txt"
with open(file_path, 'a') as file:
file.write("This will be added to the next line\n")
hoặc là
log_file = open('log.txt', 'a')
log_file.write("This will be added to the next line\n")
Chỉ là một ghi chú, file
không được hỗ trợ Python 3
và đã bị xóa. Bạn có thể làm tương tự với open
chức năng tích hợp.
f = open('test.txt', 'w')
f.write('test\n')
Trừ khi ghi vào tệp nhị phân, sử dụng in. Dưới đây ví dụ tốt để định dạng các tệp csv:
def write_row(file_, *columns):
print(*columns, sep='\t', end='\n', file=file_)
Sử dụng:
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])
Ghi chú:
'{}, {}'.format(1, 'the_second')
- https://pyformat.info/ , PEP-3101*columns
trong định nghĩa hàm - gửi bất kỳ số lượng đối số nào vào danh sách - xem câu hỏi trên * args & ** kwargsĐây là giải pháp mà tôi đã nghĩ ra khi cố gắng tự giải quyết vấn đề này để sản xuất một cách có hệ thống như là các dải phân cách. Nó viết bằng cách sử dụng một danh sách các chuỗi trong đó mỗi chuỗi là một dòng của tệp, tuy nhiên có vẻ như nó cũng có thể phù hợp với bạ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")
? Bằng cách này, bạn có thể loại bỏ tất cả các công việc danh sách, kiểm tra và chỉ có 3 dòng.