文件操作

  • open() -- 打开

    • open通过Python控制操作系统打开文件

    • f=open('文件路径',mode='r',encoding='utf-8')

      • mode -- 不写就默认是r

    • f -- 文件句柄

  • file -- 文件位置

  • encoding -- 文件编码

r

  • print(f.read()) -- 全部读取

    • 文件只能读取一次

    • print(f.read(3)) -- 按照字符读取(读不到最后一位)

    • f.readline() -- 读取一行,默认尾部有一个\n

    • f.readlines() -- 一行一行读取,全部储存在列表中

  • 路径转义:

    • 都改成"\\"

    • 在路径开头加r

  • 路径:

    • 绝对路径:从磁盘(C盘)开始查找

    • 相对路径:相对于某个文件进行查找

rb
  • f=open('文件路径',mode='rb')

    • 字节操作时,不能指定encoding编码

    • f.read()

    • f.read(3) -- 按照字节读取

    • f.readline()

    • f.readlines()

  • r 和rb的区别:

    1. r需要指定encoding,rb不需要

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

  • read 和 readlines 如果文件较大时,会出现内存溢出

    • 解决方案:文件较大时使用for循环

      • f=open('文件路径',mode='r',encoding='utf-8')
        for i in f:
           print(i.strip())   #面试题

w

  • ff=open('a1',mode='w',encoding='utf-8')
    ff.write('123')  #写的内容必须是字符串
    • 有文件就用当前文件,没有文件就创建一个文件

    • 写的内容必须是字符串

  • w操作:-- 清空写(写的是文本)

    • 先清空文件(打开文件时清空)

    • 写入内容

wb
  • 清空写(写字节)

  • ff=open('a1',mode='w')

a

  • 追加写

  • 有文件就用用当前文件,没有就创建一个文件

ab
  • 追加写字节

读写+操作

r+ 读写

  • f=open('b1',mode='r+',encoding='utf-8')

  • f=open('b1',mode='r+',encoding='utf-8')
    f.write('今天是周一')
    print(f.read()) #坑,只能先读后写

w+ 写读

  • f.seek() -- 移动光标

    • f=open('b1',mode='r+',encoding='utf-8')
      f.write('今天是周一')
      f.seek(0)
      print(f.read())

a+ 追加写、读

  • 坑:永远在末尾加,移动光标写内容还是在末尾追加

    • f=open('b1',mode='r+',encoding='utf-8')
      f.write('今天是周一')
      f.seek(0)
      f.write('啊啊啊啊')
      print(f.read())

其他操作

  • f.seek() -- 移动光标(光标是按照字节移动)

    • seek(0,0) -- 移动光标到文件头部

    • seek(0,1) -- 移动光标到当前位置

    • seek(0,2) -- 移动光标到文件末尾

  • f.tell() -- 查看光标(按照字节计算)

  • 修改文件:

    • import os #操作系统交互接口

  • 考点:

    1. 创建一个新的文件

    2. 读取旧的文件内容

    3. 进行替换修改

    4. 将修改的内容写入到新的文件中

    5. 将文件关闭

    6. 将文件名进行修改

    • 将文件中全部内容读取容易导致内存溢出

  • with open('a1','r',encoding='utf-8')as f:

    • 自动关闭文件

    • 同时操作多个文件

      • with open('a1','r',encoding='utf-8')as f,open('a2','r',encoding='utf-8')as f1:
        #上下文管理

文件操作目的

  1. 持久化:永久存储

Python之路Day08的更多相关文章

  1. 初学python之路-day08前期总结

    # 1# 计算机原理:控制器 运算器 存储器 input设备 output设备 IO流# 三大核心:CPU 内存 硬盘 # 内存分布:栈区 与 堆区# 如二进制与十进制的转换,如1111转成十进制为1 ...

  2. 初学python之路-day08

    #学习了编码后,还要了解三种字符串.# 一.# 普通字符串:u''以字符作为输出单位,# print(u'abc') # 用于显示abc# # 二进制字符串:b'' 二进制字符串以字节作为输出单位# ...

  3. Python之路【第一篇】python基础

    一.python开发 1.开发: 1)高级语言:python .Java .PHP. C#  Go ruby  c++  ===>字节码 2)低级语言:c .汇编 2.语言之间的对比: 1)py ...

  4. Python之路

    Python学习之路 第一天   Python之路,Day1 - Python基础1介绍.基本语法.流程控制              第一天作业第二天   Python之路,Day2 - Pytho ...

  5. python之路 目录

    目录 python python_基础总结1 python由来 字符编码 注释 pyc文件 python变量 导入模块 获取用户输入 流程控制if while python 基础2 编码转换 pych ...

  6. Python之路【第十九篇】:爬虫

    Python之路[第十九篇]:爬虫   网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使用 ...

  7. Python之路【第十八篇】:Web框架们

    Python之路[第十八篇]:Web框架们   Python的WEB框架 Bottle Bottle是一个快速.简洁.轻量级的基于WSIG的微型Web框架,此框架只由一个 .py 文件,除了Pytho ...

  8. Python之路【第十七篇】:Django【进阶篇 】

    Python之路[第十七篇]:Django[进阶篇 ]   Model 到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞: 创建数据库,设计表结构和字段 使用 MySQLdb 来连接 ...

  9. Python之路【第十六篇】:Django【基础篇】

    Python之路[第十六篇]:Django[基础篇]   Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了O ...

随机推荐

  1. Ansible学习笔记(一):部署管理Windows机器遇到的一些坑

    在给国盛通上海测试环境做Ansible管理Windows服务器的时候,遇到了一些坑,Google解决掉了,特此记录,坑用红色标记. 一.环境说明 1.Ansible管理主机 操作系统:CentOS 7 ...

  2. 关系模式范式分解教程 3NF与BCNF口诀

    https://blog.csdn.net/sumaliqinghua/article/details/86246762 [通俗易懂]关系模式范式分解教程 3NF与BCNF口诀!小白也能看懂原创置顶 ...

  3. SQLServer之查询当前服务器下所有目录视图表

    SQL脚本 /*************1:删除临时表*************/ if exists(select * from tempdb..sysobjects where id=object ...

  4. MySQL面试笔试题集-BAT

    01.MySQL技术特点? Mysql数据库软件是一个客户端或服务器系统,支持各种客户端程序和库的多线程SQL服务器.不同的后端.广泛的应用程序编程接口和管理工具 02.MySQL默认端口号? 330 ...

  5. SpringCloud入门学习

    我相信,如果小伙伴们能来到这里,肯定对微服务有一定的认识. 我们之前创建web项目的时候,常见的有两种方式: 1).创建一个war包,然后放在servlet容器中运行(比如Tomcat等); 2).使 ...

  6. IDAE快捷键与设置

    以前做项目的时候都是用Eclispe,来到新的公司发现IDE用的是IDEA集成开发工具,以前也用过IDEA,只是略懂略懂,以后你会发现,当你用IDEA的快捷键的时候,会6的飞起 1.IDEA常用快捷键 ...

  7. Java学习之String、StringBuffer、StringBuilder

    String 我们知道字符串的分配和其他对象分配一样,是需要消耗高昂的时间和空间的,而且字符串我们使用的非常多.JVM为了提高性能和减少内存的开销,在实例化字符串的时候进行了一些优化:使用字符串常量池 ...

  8. 关于MY Sql 查询锁表信息和解锁表

    1.查询锁住表信息 show OPEN TABLES where In_use > 0; 2.查看进程  show processlist; 3.解开锁住的表 需要杀掉锁住表的相关进程Id. k ...

  9. PHP0016:PHP http协议

    post提交请求头

  10. QingTing.Fm-WPF是调用蜻蜓FMAPI 查询API内容展示,进行播放

    QingTing.Fm 是调用蜻蜓FM   API 查询界面内容,进行在线播放. Release地址下载 环境 Visual Studio 2019,dotNet Framework 4.6.1 SD ...