Bootstrap

python对txt文件写入的两种方法f.write和f.writelines(),上面两种方法的区别是什么。

问题描述:

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()更简洁,列表的可操作性也比较强。

;