问题描述
解决方案
enumerate
contents = [str(i) for i in range(10)] # 要写入的内容
with open('1.txt', 'w') as f:
for index, x in enumerate(contents):
if index != len(contents) - 1:
f.write(x + '\n')
else:
f.write(x)
或
contents = [str(i) for i in range(10)] # 要写入的内容
length = len(contents)
with open('1.txt', 'w') as f:
for i, x in enumerate(contents):
f.write(x)
if i != length - 1:
f.write('\n')
循环里判断长度和预计算长度的实际耗时差不多
切片
contents = [str(i) for i in range(10)] # 要写入的内容
with open('1.txt', 'w') as f:
for x in contents[:-1]:
f.write(x + '\n')
f.write(contents[-1])
光标
import os
contents = [str(i) for i in range(10)] # 要写入的内容
with open('1.txt', 'wb') as f:
for x in contents:
content = x + '\n'
f.write(content.encode())
f.seek(-1, os.SEEK_CUR) # 光标往前移动
f.truncate() # 截断
其他
writelines()
是批量写入,不会自动带入换行符