文件操作

  • 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. 展讯sprd_battery.c 充电驱动

    sprd_battery.c 是充电驱动,这个是充电功能的核心内容,电量显示策略.温度检测策略.充电保护机制等功能在这里实现,功能实现与硬件细节剥离,调用通用接口实现逻辑控制: 1 sprdbat_p ...

  2. Linux学习记录(一):常用命令

    此篇文章为博主在Linux学习过程中的一些记录,记录在此方便查阅. 常用命令总结 ls 显示目录内容 (list directory contents) ls 不显示隐藏的文件和子目录 ls -a 显 ...

  3. 在Oracle中使用sqlload做数据迁移

    前提:检查sqlload是否可用,输入sqlldr,提示有版本即可   1.创建测试表(已有则跳过)create table testTable(user varchar2(255),name var ...

  4. 基于axios的万能封装

    一 . 命名axios.js import axios from 'axios'; export default function ajax(url = '', params = {}, type = ...

  5. Network Emulator for Windows Toolkit(模拟弱网络环境的软件)

    前言和下载地址 用户会在各种网络环境下使用我们的app,pc应用,我们决不能祈求用户的网络环境都是稳定的,因此我们需要模拟出弱网络的情况,用来测试我们的APP在弱网络环境下的表现如何. Network ...

  6. win10 系统到期的解决方案

    本人是 win10 教育版,今天多次提醒 windows 要到期了(烦银).所以网上找到了解决方法,记录一下. 废话:win10 与之前的 windows 版本一样,有家庭版.专业版.企业版等各个版本 ...

  7. maven的核心概念——继承

    15.1 为什么需要继承机制 由于非compile范围的依赖信息是不能在“依赖链”中传递的,所以有需要的工程只能单独配置.例如: Hello <dependency> <groupI ...

  8. [HNOI2016]网络 [树链剖分,可删除堆]

    考虑在 |不在| 这条链上的所有点上放上一个 \(x\),删除也是,然后用可删除堆就随便草掉了. // powered by c++11 // by Isaunoya #pragma GCC opti ...

  9. php趣题小记

    题目一: $a = 'abc'; $a++; echo $a; // abd 题目二: function myfun($a){ echo $a+10; } $a = 10; echo "my ...

  10. JN_0014:win10命令窗口以管理员方式启动

    1,先打开命令窗口 2,固定到任务栏 3,右键任务栏图标 4,右键命令提示符, 5,选择以管理员方式启动.