第八节

1,文件操作

文件操作目的: 持久化,永久存储 (数据库之前 -- 文件操作就是代替数据库)

    • 1,找到文件位

      2,双击打开

      3,进行一些操作

      4,关闭文件

    • open() 打开,通过python控制操作系统进行打开

    • file 文件的位置

    • mode 默认不写就是r

    • encoding 文件的编码

    • f 文件句柄

    • 文件只能读取一次

f = open("D:\Python_s25\day08\小姐姐电话号",mode="r",encoding="utf-8")print(f.read())# 全部读取print(f.read(4))#按照字符读取print(f.readline())# 默认尾部有一个\n,读取一行print(f.readline().strip()) #\n去除print(f.readlines())# 一行一行读取,全部储存到列表中
  • 绝对路径:具体到文件的精确位置,具体到名字

  • 相对路径:具体到文件的文件夹,

  • 路径转义:r" "

  • 读字节

    字节操作 不能指定encoding编码

    f = open("timg.jpg",mode="rb")print(f.read())      # 全部读取print(f.read(3))     # 按照字节读取print(f.readline())  # 按照行进行读取print(f.readlines()) # 一行一行读取,全部储存到列表中
    • r和 r b的区别:

      1,r需要指定encoding,r b不需要

      2,r模式中的read(3) 按照字符读取,,r b模式中的read(3) 按照字节读取

    • w操作 —— 清空写,写的是文本

      1,先清空文件

      2,写入内容

      注:当模式为a和w时,有文件就使用当前文件,没有就新建一个

    ff = open("a1",mode="w",encoding="utf-8")ff.write("123")  # 写的内容必须是字符串ff = open("a1",mode="w",encoding="utf-8")ff.write("我是一个字符串串")  # 写的内容必须是字符串​ff = open("a1",mode="w",encoding="utf-8")ff.write("[1,2,3,4]\n")  # 写的内容必须是字符串ff.write('1111\n')  # 写的内容必须是字符串ff.write('2222\n')  # 写的内容必须是字符串​ff = open("a1",mode="w",encoding="utf-8")ff.write("[1,2,3,4]\n")  # 写的内容必须是字符串ff.write('1111\n')  # 写的内容必须是字符串ff.write('2222\n')  # 写的内容必须是字符串
    • w b —— 清空写,写字节

    f = open('timg.jpg',mode="rb")f1 = open("g1.jpg",mode="wb")content = f.read()f1.write(content)
  • 追加—— a

    f = open("b1",mode="a",encoding="utf-8")f.write("你好啊\n")f.write("我好啊\n")f.write("他好啊\n")f.write("大家好啊\n")3.
  1. 加操作

    r + (有点用)# 正确的操作:f = open("b1",mode="r+",encoding="utf-8")print(f.read())f.write("今天是周一")
    w+ 写读 (有点用)f = open("b1",mode="w+",encoding="utf-8")f.write("今天是周一")f.seek(0)  # 移动光标print(f.read())
    a+ 追加读  # 坑f = open("b1",mode="a+",encoding="utf-8")f.write("今天是周一")f.seek(0)  # 移动光标f.write("啊啊啊啊")print(f.read())a+ 追加读  # 坑f = open("b1",mode="a+",encoding="utf-8")f.write("今天是周一")f.seek(0)  # 移动光标f.write("啊啊啊啊")print(f.read())
    • 其他操作:

    • seek() 移动光标

    • f.seek(0,0)

    • 移动光标到文件的头部# f.seek(0,1)

    • 移动光标到当前位置# f.seek(0,2)

    • 移动光标到文件末尾# f.seek(6)

    • 光标是按照字节移动

    # 考点:import os  # 操作系统交互的接口f = open('a2',"r",encoding="utf-8")f1 = open("a1","w",encoding="utf-8")i = f1.read().replace("天","日")    # 将文件中全部内容读取 容易导致内存溢出f1.write(i)f.close()f1.close()os.rename("a2","a3")os.rename("a1","a2")​​with open("a3","r",encoding="utf-8")as f,\        open('a2',"r",encoding="utf-8")as f1:    print(f.read())    print(f1.read())# 1.自动关闭文件# 2.同一时间操作多个文件

最新文章

  1. 给select添加自定义值和选项
  2. mORMot 数据库操作
  3. AEAI HR V1.5.1升级说明,开源人力资源管理系统
  4. javascript替换手机号中间4位
  5. MySQL 绿色版(zip) 安装
  6. Android学习之-TextView的滑动效果
  7. OEM - emctl resetTZ agent 设置时区
  8. 使用JsPlumb绘制拓扑图的通用方法
  9. OnClose()和 OnDestroy()
  10. WebStorm JavaScript 开发神器
  11. 【整理】图解隐马尔可夫模型(HMM)
  12. UEP-树和表
  13. 在lamp上简单部署应用程序
  14. 软工+C(7): 野生程序员
  15. Linux安装RocketMQ
  16. 运维案例 | Exchange2010数据库损坏的紧急修复思路
  17. 未来-区块链-Micron:区块链永远不会忘记:内存对这项革命性技术的推动作用
  18. 2017CCPC秦皇岛 A题Balloon Robot&&ZOJ3981【模拟】
  19. Go语言规格说明书 之 接口类型(Interface types)
  20. 步步入佳境---UI入门(2)

热门文章

  1. B. Interesting Array(线段树)
  2. linux开机执行脚本
  3. (八)C语言之printf
  4. Visual Studio Code 编辑器使用
  5. json-lib json反序列化——日期转换
  6. LC 535. Encode and Decode TinyURL
  7. 溢出overflow: hidden
  8. CentOS 升级至指定版本
  9. java游戏服务器 建造者模式
  10. 人性化的Requests模块(响应与编码、header处理、cookie处理、重定向与历史记录、代理设置)