文本处理

1|01. 文本处理

1|11. 什么是文本处理

修改存储的信息

1|22. 什么是文件

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

1|33. 操作文件的流程

  1. 打开文件

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

  2. 读取/修改文件

    r / w / a

  3. 保存文件

    f.flush()

  4. 关闭文件

    f.close()

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

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

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

  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|03. 文件的两种打开方式

3|11. t 模式

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

3|22. b 模式

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

4|04. 绝对路径和相对路径

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

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

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

5|05. 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|06. 文本文件处理的高级应用

6|11. 三种可读可写的模式

  1. r+

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

  1. w+

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

  1. a+

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

6|22. 光标的高级应用

1|0(1)字节与字符

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

1|0(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)

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

with open('test.py', 'r', encoding='utf8') as fr: print(fr.read(3)) # n表示读取n个字符,不加默认读取所有 # 中文和英文都属于一个字符

__EOF__

本文作者BigSun丶
本文链接https://www.cnblogs.com/Mcoming/p/11542464.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   BigSun丶  阅读(531)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示