write 和writelines有什么区别?这两段代码都实现了同样功能?

with open("aa.GIF","rb") as f:
    with open("aa_copy.GIF","wb") as w:
        line = f.readlines()
        w.writelines(line)

with open("aa.GIF", "rb") as f:
    with open("aa.copy2.GIF","wb") as s:
        for line in f.readlines():
            s.write(line)# 这里为什么不能用writelines


print("write 和writelines有什么区别?")

第一个方法里面用writelines是因为line是一个数组,第二个方法里面用write是因为上面有for循环遍历了readlines每个元素。多个和单个的区别。

write用于写入时参数是字符串,writelines的参数是一个序列,可以是列表形式。在第二段中,因为用循环读取了列表中的元素,即字串,所以只能用write方法写入。

两个函数的参数不同:

write(str 或 bytes):输出字符串或字节串。只有以二进制模式(b 模式)打开的文件才能写入字节串。

writelines(可迭代对象):输出多个字符串或多个字节串。(不是单个对象)

参考一下:https://blog.csdn.net/Zhongjie1986/article/details/91448373

如果对你有帮助,可以点击我这个回答右上方的【采纳】按钮,给我个采纳吗,谢谢