• 文本处理


    1. 文本处理

    1. 什么是文本处理

    修改存储的信息

    2. 什么是文件

    操作系统提供的一个虚拟单位,用来存储信息(用二进制存储信息)

    3. 操作文件的流程

    1. 打开文件

      open('路径','操作模式',encoding = '字符编码')

    2. 读取/修改文件

      r / w / a

    3. 保存文件

      f.flush()

    4. 关闭文件

      f.close()

    2. 文本文件的三种操作模式

    重点:对文件的操作,不管是读取还是写入,光标都会移动。

    就是说,每读一次,光标就往后/下移相应的位数一次。文本读一行少一行

    1. 读取 r :只读

    2. 清空写 w :只写

    3. 追加写 a :只写

      f = open('D:python12期视频1.txt','r',encoding = 'utf8')
      f.read()
      f.readline()   # 读取光标所在的那一行
      f.readlines()  #一次性全部按行读取,存入列表中,一行是一个元素(包括最后的换行符)
      for i in f.readlines():
          print(i)
      for i in f:   # 一行一行读取,中间可以使用break/continue 中断,比上面的循环遍历节省空间
          print(i)
      

    3. 文件的两种打开方式

    1. t 模式

    只针对文本文件,操作模式使用 rt,wt,at 。等价于 r ,w ,a

    2. b 模式

    只针对多媒体文件,操作模式使用 rb,wb,ab

    4. 绝对路径和相对路径

    • 绝对路径:从盘符开始。 如:D:上海python12期视频python12期视频day 09 est.py

    • 相对路径:执行文件(当前运行的文件)的文件夹下的文件名,执行文件和打开文件属于同一文件夹下

    • 未来写项目尽量用相对路径

    5. with管理上下文

    with提供了一个自动关闭文件(解除对操作系统的占用)

    with open('test.py', 'r', encoding='utf8') as f:
        # print(f.read())
        # 在这个缩进下不会关闭文件,在这个缩进下对文件操作
        data = f.read()  # data放到python的内存中
    print(f) # 关闭文件(操作系统),没有关闭python内存中的文件
    print(data)# 关闭文件(操作系统),没有关闭python内存中的文件
    print(f.read())  # 涉及操作系统,因此该代码报错
    

    6. 文本文件处理的高级应用

    1. 三种可读可写的模式

    1. r+

    这种模式下的写入,新写入的字符会覆盖光标之后的字符

    1. w+

    该模式与w模式没有任何区别

    1. a+

    该模式下,开始时光标默认在文本的尾部。

    2. 光标的高级应用

    (1)字节与字符

    • utf-8中规定:
      • 对于英文:8个二进制位为一个字节,1个字节组成一个字符。--》一个字符对应一个字母
      • 对于中文:8个二进制位为一个字节,3个字节组成一个字符。--》一个字符对应一个汉字

    (2)移动光标的三种方法(以字节为单位)

    • seek(移动光标)

       with open('test.py', 'rb') as fr:
          fr.seek(5)  # 移动了3个字节,一个中文,默认从开头开始
          print(fr.read())
          print(fr.read().decode('utf8'))#使用utf8翻译内容
      

      whence(seek 方法里的第二个参数,没有写就默认是0)

      fr.seek(3, 1)
      

      whence 规定只有 0 ,1 ,2 三种模式

      0表示光标在文件头

      1表示光标在当前位置

      2表示光标在文件尾部

    • tell(告诉你当前光标的位置)

      with open('test.py', 'rb') as fr:
          fr.seek(3, 0)
          print(fr.tell())
      
    • truncate(截断)

      光标从文件头开始,到括号内的数字,之后的都删除掉

      with open('test.py', 'ab') as fa: 
          fa.truncate(2)
      

    (3)移动光标(以字符为单位) read

    with open('test.py', 'r', encoding='utf8') as fr:
         print(fr.read(3))  # n表示读取n个字符,不加默认读取所有 # 中文和英文都属于一个字符
    
  • 相关阅读:
    基于WF4的新平台流程模式(3)并发
    基于Wxwinter.BPM 的MEF 接口开发业务流程
    基于WF4的新平台流程设计器功能更新说明
    基于WF4的新平台流程模式(8)表单路由
    Wxwinter.BPM类库更新
    WF4的新平台代码提供说明
    介绍一下我的职业
    NET 4.5 中状态机工作流
    Scorpion and the frog 蝎子和青蛙
    直观理解贝叶斯公式
  • 原文地址:https://www.cnblogs.com/Mcoming/p/11542464.html
Copyright © 2020-2023  润新知