Python文件读写操作-3·文件写操作(Write)
2024-04-10 13:30:51  阅读数 1204

一、文件Write操作概述:

  • write() 内建方法功能与 read() 和 readline() 相反
  • 它把含有 文本数据 或 二进制数据 的内容写入到文件中去

二、Write 方法 —— 写文件

  • 写入数据tmp/write.txt
  • 每一次open并且mode=“w”的时候,将会覆盖文件的内容
  • 但是在一次open的流程下,多次write()是追加内容,则不会逐行覆盖
# 打开文件
fw = open("/tmp/write.txt", mode="w")
# 写内容
fw.write("hello world!")
# 在一次open下,多次write是追加内容,而不会覆盖
fw.write("hello world!  2222\n")
# 关闭资源
fw.close()

三、Writelines 方法

  • 和 readlines() 一样,writelines() 方法是针对 列表 的操作
  • 它接受一个 字符串列表 作为参数,将他们写入文件
  • 行结束符并不会被自动加入,所以如果需要的话,必须再调用 writelines() 前给每行结尾加上行结束符
Writelines.png
writelines写入list01
# writelines 方法
list01 = ["hello\n", "world\n", "nfx\n"]
# 1.打开文件
fw1 = open("/opt/tc.txt", mode="w")
# 2.写文件
fw1.writelines(list01)
# 3.关闭资源
fw1.close()
writelines写入列表数据
# writelines写入数据
fwLines = open("/tmp/writelines.txt", mode="w")
# 执行writelines写入操作
fwLines.writelines(["line1\n", "line 2\n", "line 3\n"])
fwLines.writelines(["line4\n", "line 5\n", "line 6\n"])
fwLines.writelines(["line7\n", "line 8\n", "line 9\n"])
# 关闭资源
fwLines.close()

模拟cp案例

  • 将/usr/bin/ls "拷贝" 到/tmp 目录下,但是不要修改原始文件
#实现流程:
# 创建文件对象fr和fw
# 利用while循环读出源文件的内容
# 保存读出来的内容
# 将内容写入新文件
# 关闭资源fr、fw

# 由于ls都是二进制数据,所以mode需要加上b
fr = open("/usr/bin/ls", mode="rb")
fw = open("/tmp/myls", mode="wb")

# 不知道要读取几行使用while循环
while True:
    # 4KB 的读写效率最高 4*1024Byte
    data = fr.read(4096)
    # 判断数据是否为空,为空跳出循环
    if not data:
        break
    print("data:", data)
    # 写入数据
    fw.write(data)

# 关闭资源(保持好习惯,减少内存消耗)
fr.close()
fw.close()