zoukankan      html  css  js  c++  java
  • python D8 文件操作


    # r 、w 、 a / rb 、wb、ab/r+ w+ a+
    # x = open("boom.txt", mode="w", encoding="utf-8")
    # y = x.write("你是大sb")
    # x = open("boom.txt", mode="r", encoding="utf-8")
    # print(x.read())
    # x = open("boom.txt", mode="a", encoding="utf-8")
    # y = x.write("你是小sha")
    # print(y)
    # rb:表示只读字节,将文字信息已字节的形式展示出来
    # x = open("boom.txt", mode="rb") b其实表示的是bytes
    # print(x.read()) # b'xe4xbdxa0xe6x98xafxe5xa4xa7sbxe4xbdxa0xe6x98xafxe5xb0x8fsha'
    # x = open("../python D6 字典/作业.py", mode="r", encoding="utf-8")
    # print(x.read()) # ../ 表示上层目录 /直接打开文件所在目录
    # x = open("boom sha ka la ka", mode="w", encoding="utf-8")
    # print(x.write("周杰车轮"))
    # print(x.write("haoshabi"))
    # r+ 深坑请注意: 在r+模式下. 如果读取了内容. 不论读取内容多少. 光标显⽰的是多少. 再写入或者操作⽂件的时候都是在结尾进⾏的操作.
    # x = open("boom sha ka la ka", mode="r+", encoding="utf-8")
    # x.read(3)
    # x.write("张国荣吗") # 先读后写、读完光标定位在最后一位在开始写
    # w+
    # x = open("boom sha ka la ka", mode="w+", encoding="utf-8")
    # x.write("大sb不是吗")
    # print(x.read()) # 读到内容为空w模式下会先清空原来文本,在写入光标定位在最后一位,因此打出内容为空
    # x = open("boom sha ka la ka", mode="a+", encoding="utf-8")
    # x.write("大sb不是吗")
    # print(x.read()) # 追加在末尾 不管先读还是后读都读不出任何内容
    # x = open("boom sha ka la ka", mode="a+", encoding="utf-8")
    # print(x.read())
    # x.write("大sb不是吗")

    # seek(n):表示光标移动到n的位置 注意, 移动的单位是byte. 所以如果是UTF-8的中⽂部分要是3的倍数.
    # seek(参数1, 参数2)
    # 参数1表示的是偏移量,移动多少个单位
    # 参数2表示从什么位置进行偏移
    # seek(0):表示开头位置
    # seek(0, 2):表示结尾位置
    # f = open("boom.txt", mode="r", encoding="utf-8")
    # f.seek(5, 0)
    # y = f.read()
    # print(y)

    # tell():可以帮我们获取我们光标当前的位置 所指出的位置是以字节(byte)计算的
    # f = open("boom.txt", mode="r+", encoding="utf-8")
    # f.read() # 读写模式 读完光标停在最后
    # f.seek(0) # 光标移动到开头
    # f.write("张国荣") # 开头写入张国荣共计9个字节
    # print(f.tell()) # 9

    # truncate() 截断⽂件 :删除光标后面所有文件
    # f = open("boom.txt", mode="r+", encoding="utf-8") # 张国荣大傻子Ma
    # f.seek(9, 0)
    # f.truncate() # 文件只剩下:张国荣
    # 所以如果想做截断操作. 记住了. 要先挪动光标. 挪动到你想要截断的位置. 然后再进⾏截断
    # 关于truncate(n), 如果给出了n. 则从开头开头进⾏截断, 如果不给n, 则从当前位置截断. 后⾯
    # 的内容将会被删除

    # 修改文件以及另一种方式打开文件
    # 修改文件:其实是用一个新文件去替换原文件
    # 方法一:
    # 缺点需要将文件全部读出在重新写入新文件中,内存溢出 解决⽅案: ⼀⾏⼀⾏的读取和操作
    # import os
    #
    # with open("boom sha ka la ka", mode="r", encoding="utf-8") as x1,
    # open("boom_new", mode="w", encoding="utf-8") as x2:
    # content = x1.read() # 一次读出内容导致内存溢出
    # content_new = content.replace("sb", "傻子")
    # x2.write(content_new ) # 到这一步是生成一个文件,并将想要替换的内容替换好写入文件x2中
    # os.remove("boom sha ka la ka") # 引用函数os 删除"boom sha ka la ka"原文件夹
    # os.rename("boom_new", "boom sha ka la ka") # 引用函数os 将"boom_new"名称改为"boom sha ka la ka"
    # 方法二:
    # 一行一行读出,省内存
    # import os
    #
    # with open("boom sha ka la ka", mode="r", encoding="utf-8") as x1,
    # open("boom_new", mode="w", encoding="utf-8") as x2:
    # for line in x1: # 文件也是可以迭代的 一行行拿出来替换写入新文件中,节省内存
    # content_new = line.replace("sb", "沙比")
    # x2.write(content_new)
    # os.remove("boom sha ka la ka") # 引用函数os 删除"boom sha ka la ka"原文件夹
    # os.rename("boom_new", "boom sha ka la ka") # 引用函数os 将"boom_new"名称改为"boom sha ka la ka"
  • 相关阅读:
    流程控制之while循环
    流程控制之if判断
    基本运算符
    格式化输出的三种方式
    Python与用户交互
    解压缩
    布尔类型
    字典类型
    列表类型
    字符串类型
  • 原文地址:https://www.cnblogs.com/z520h123/p/9857429.html
Copyright © 2011-2022 走看看