问题描述:
python对txt文件写入的两种方法f.write和f.writelines(),上面两种方法的区别是什么。,假如写入的内容是一个列表[["张三,18,5000"],["李四",20,6000]],要求输出,每个子列表占一行要求两种方法的输出结果一样,展示出输出结果。
问题解答:
使用 f.write()
我们将逐行写入列表中的数据,每次写入一行。
data = [["张三", 18, 5000], ["李四", 20, 6000]]
with open('output_write.txt', 'w', encoding='utf-8') as f:
for row in data:
line = ",".join(map(str, row)) + "\n"
f.write(line)
使用 f.writelines()
我们先将每行数据处理成字符串列表,然后一次性写入文件。
data = [["张三", 18, 5000], ["李四", 20, 6000]]
lines = []
for row in data:
line = ",".join(map(str, row)) + "\n"
lines.append(line)
with open('output_writelines.txt', 'w', encoding='utf-8') as f:
f.writelines(lines)
输出结果
无论使用哪种方法,生成的文件内容都是一样的,每个子列表占一行,内容如下:
张三,18,5000
李四,20,6000
代码总结
使用 f.write()
data = [["张三", 18, 5000], ["李四", 20, 6000]]
with open('output_write.txt', 'w', encoding='utf-8') as f:
for row in data:
line = ",".join(map(str, row)) + "\n"
f.write(line)
使用 f.writelines()
data = [["张三", 18, 5000], ["李四", 20, 6000]]
lines = []
for row in data:
line = ",".join(map(str, row)) + "\n"
lines.append(line)
with open('output_writelines.txt', 'w', encoding='utf-8') as f:
f.writelines(lines)
通过这两种方法,我们可以将一个包含子列表的列表写入文件,每个子列表占一行。
这两种方法都可以满足需求,但 f.writelines()
更适合在预先处理好所有数据的情况下使用,而 f.write()
更灵活,适合动态生成或处理每一行数据的情况。
——————————————————————————————————————————
个人觉得f.writelines()更简洁,列表的可操作性也比较强。