Python3中打开文件的方式(With open)

  • 一、了解文件基本概念
    • 1.什么是文件
    • 2.两种重要的文件类型
    • 3.文本文件与二进制文件的优缺点
    • 4.python3中的字符串类型
    • 5.文件的缓冲机制
    • 文件缓冲区
    • 缓冲机制的好处
  • 二、文件基本操作
    • 1.访问文件操作过程
    • 2.打开文件(open)
    • 3.最简单的文件操作
    • 4.打开文件-文件编码
    • 5.为什么需要编码
    • 6.常见编码
    • 7.判断文件编码-chardet模块
    • 8.打开文件-mode
    • 快 问 快 答
    • 9.关闭文件
    • 关闭文件-用with语句打开
    • 三.文件的读写操作
    • 1.读取文件内容
    • 小 练 习
    • 2.写文件
    • 小 案 例
    • 3.文件对象其他方法
    • 四. 小练习
    • 1.ip存储与读取文件统计ip频率 (京东二面题)
    • 2.已知一个文件 test.txt
    • 3.词频统计
  • 总结


提示:以下是本篇文章正文内容,下面案例可供参考

一、了解文件基本概念

1.什么是文件

文件是存放在外部介质 (如硬盘、U盘) 上的一组完整信息的集合。这些信息可为各种文字、 图形、图像、电影、音乐,甚至包括病毒程序等。

2.两种重要的文件类型

文本文件(Text File)。文本文件是可直接阅读的,使用记事本打开即可看到文件的内 容。
二进制文件(Binary File)。这类文件将数据按照它的进制编码的形式存储。如BMP。由 于这类文件内容是二进制编码,使用记事本打开是显然是乱码,BMP可用图片查看器解 码。

3.文本文件与二进制文件的优缺点

无论什么类型的文件,在硬盘/内存=> 二进制

  • 文本方式读:内存->看(转换)
  • 二进制方式读: 内存-> 看到一致

4.python3中的字符串类型

• bytes 转换:bytes->str : decode(‘utf8’)
• str 转换: str->bytes: encode(‘utf8’)

注意:encode编码时可指定任何合适的编码方式,但decode解码时,一定需要对应的编码方式

5.文件的缓冲机制

读操作:不会直接对磁盘进行读取,而是先打开数据流,将磁盘上的文件信息拷贝到缓冲区内,然后 程序再从缓冲区中读取所需数据

写操作:不会马上写入磁盘中,而是先写入缓冲区,只有在缓冲区已满或“关闭文件”时,才会将数 据写入磁盘

文件缓冲区

计算机系统为要处理的文件在内存中单独开辟出来的一个存储区间,在读写该文件时,做为数据交换的 临时“存储中转站”。

缓冲机制的好处

能够有效地减少对外部设备的频繁访问,减少内存与外设间的数据交换,填补内、外设备的速度差异, 提高数据读写的效率

二、文件基本操作

1.访问文件操作过程

• 打开文件
• 读取文件 将信息读到内存
• 写入文件
• 关闭文件 保存文件并释放内存空间

2.打开文件(open)

file : 要打开的文件名( str )
• mode: 打开文件的方式( str ) => text, bytes
• encoding: 文件编码方式(str)
• errors: 当发生编码错误时的处理方式(str) ‘ignore’或’strict’(默认) • buffering: 缓存方式 ( int)

3.最简单的文件操作

打开一个文件”example.txt“
打印文件内容

4.打开文件-文件编码

• encoding: 文件的编码方式( str )
• encoding的默认值:None, 不同的平台打开的方式不一样

• encoding is the name of the encoding used to decode or encode the file. This should only be used in text mode. The default encoding is platform dependent。

Encoding是用于解码或编码文件的编码名称。 这应该只在文本模式下使用。 默认编码是平台相关的

5.为什么需要编码

对于计算机来说,所有信息都是由0和1组成的二进制。
人类无法仅用二进制就来完成计算机的各种操作
字符编码解决人与计算机之间的沟通问题

6.常见编码

文件编码案例
(1)制作2个文件
• “gbk.txt” 保存为GBK编码
• “utf8.txt” 保存为UTF-8编码
(2)测试打开文件
• 用默认方式
• 用正确的编码方式打开
• 显示地指定编码方式

7.判断文件编码-chardet模块

• 安装:pip install chardet
• 检测

8.打开文件-mode

(rwxa任选其一, tb任选其一,+是可选项)

快 问 快 答

以下是需要什么模式打开
• 读取本地图片
• 将网络上的图片保存到本地
• 接收用户输入,将内容保存到文件末尾
• 接收用户输入,将内容保存到文件,如果文件已存在,则覆盖原内容

9.关闭文件

• 为什么要关闭文件
• 文件忘记关闭
• 遇到异常怎么办

关闭文件-用with语句打开

三.文件的读写操作

1.读取文件内容

小 练 习

准备一个example.txt文件, 里面随便写入些内容(如一首歌词)
读前5行。
读全文
读取最后12字节 => str格式
读取最后4个汉字 => str格式

2.写文件

• 为什么不实时写入磁盘 硬盘是慢设备,频率读写会增大磁盘压力,产生瓶颈
• 什么时候会写入磁盘

• f.flush()
• f.close()
• buffer设置(默认:io.DEFAULT_BUFFER_SIZE )
• 0 => 实时写入 (binary mode)
• 1 => 行缓存 ( text mode) => \n
• 其他数字n => 缓冲区大小n : 2*4096
![在这里插入图片描述](https://img-blog.csdnimg.cn/4f12784cee36448bae76c205dbf9f81a.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5pyq5pyrMDkwMg==,size_20,color_FFFFFF,t_70,g_se,x_16

小 案 例

f.flush() 强行写入
f.close() 关闭文件
buffer参数默认值
buffer参数不缓存
buffer参数行缓存
buffer参数设置指定大小

3.文件对象其他方法

四. 小练习

1.ip存储与读取文件统计ip频率 (京东二面题)

生成一个大文件ips.txt,要求120000行,每行随即为172.25.254.0/24段的ip;
•读取ips.txt文件统计这个文件中ip出现频率前10的ip;

访客:编写一个程序,提示用户输入其名字;用户作出响应后,将其名字写 入到文件 guest.txt 中。

生成100个MAC地址并写入文件中,MAC地址前6位(16进制)为01-AF-3B

2.已知一个文件 test.txt

内容如下:

2002年的第一场雪,比以往时候来的更晚一些
停靠在八楼的二路汽车,带走了最后一片飘落的黄叶
2002年的第一场雪,是留在乌鲁木齐难舍的情结

• 请输出其内容。
• 请取出最后3个字节。
• 请从字符串的最初开始,截断该字符串,使其长度为12字节

3.词频统计

• 已经有一个瓦尔登湖的文本,“Walden.txt” • 统计这篇文章的词频(每个词出现的次数)
• 不统计标点符号
• The和the被统计成同一个词(不区分大小写)
• 输出格式:{ ‘the’: 10, ‘is’: 45…}


总结

1.文件操作在日常的工作场景中十分常见,文件的读取和写入是正常操作,一定要掌握哦。

2.对于第二章的一些命令和操作要重点掌握,这是个孰能生巧的过程,一定要多多练习哈

Python3中打开文件的方式(With open)相关推荐

  1. Python中打开文件的方式(With open)

    python文件读写文件是最常见的IO操作.Python内置了读写文件的函数,用法和C是兼容的. 读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程 ...

  2. python中打开文件open_Python中打开文件的方式(With open)

    1.读文件 要以读文件的模式打开一个文件对象,使用Python内置的open()函数,传入文件名和标 示符: f = open( '/Users/michael/test.txt', 'r' ) 标示 ...

  3. python中怎么打开文件_Python中打开文件的方式(With open)

    1.读文件 要以读文件的模式打开一个文件对象,使用Python内置的open()函数,传入文件名和标 示符: f = open( '/Users/michael/test.txt', 'r' ) 标示 ...

  4. python打开一个文件-python下几种打开文件的方式

    昨天看完了这本python进阶,感觉这本书对我启发很大,做了三张纸的笔记,方便我在遇到问题的时候翻阅,然后寻找可能的解决方案.作为一个使用Python一年的小白,虽然说不是小白,但是这一年来基本上是用 ...

  5. python下几种打开文件的方式

    python下打开文件超级简单,不用导入任何包,直接输入 f = open('your_file.txt','r') 就可以打开一个文件进行操作.第二个参数为对文件的操作方式,'w'是写文件,已存在的 ...

  6. python打开方式包括_python打开文件的方式有哪些

    python下打开文件超级简单,不用导入任何包,直接输入 f =open('your_file.txt','r') 就可以打开一个文件进行操作.第二个参数为对文件的操作方式,'w'是写文件,已存在的同 ...

  7. 第二十一章流 5 多种打开文件的方式 文件存在,文件不存在

    // 第二十一章流 5 多种打开文件的方式 文件存在,文件不存在 /* ios::in 打开文件进行读操作,即读取文件中的数据 ios::out 打开文件进行写操作,即输出数据到文件中 ios::at ...

  8. MFC中打开文件对话框:CFileDlg

    MFC中打开文件对话框:CFileDlg CFileDialog 文件选择对话框的使用:首先构造一个对象并提供相应的参数,构造函数原型如下: CFileDialog::CFileDialog( BOO ...

  9. linux18.04 英文文件夹,在Ubuntu 18.04 LTS中打开文件夹的6种方法

    在Ubuntu中打开文件夹是作为常规Ubuntu用户执行的基本任务之一.尽管有很多方法可以这样做,但是当访问系统上的文件夹时,我们都有选择的方式. 在本文中,我们将解释一些方法: 在文件管理器(Nau ...

最新文章

  1. everything 搜索盘符
  2. mysql数据库物理备份_MySQL数据库之xtrabackup物理备份(一)
  3. Echarts图标自适应问题(已解决)
  4. css优先级计算规则
  5. 快速上手 Serverless | 入门第一课
  6. Kafka 监控 Kafka Eagle 精简版本
  7. JAVA 获取操作系统属性
  8. 数据库建模工具powerdisgner16.5
  9. vagrant:修改Linux网络设置
  10. 超级右键-Mac右键扩展工具
  11. 用友T+改成IIS-网站报500.19错误代码0x8007000d问题解决
  12. 阿里云香港服务器购买教程(图文)
  13. 电商后台系统:管理后台之账号管理(一)
  14. 倍福电子凸轮实现案例展示
  15. Type string trivially inferred from a string literal, remove type annotation.eslint@typescript-eslin
  16. 向NCBI上传16S rDNA数据的操作详解
  17. 高并发系统--限流算法
  18. 各种开放API接口汇总信息
  19. 刚上市就名声鹊起,nova3和NEX拍照谁能更甚一筹?
  20. Go秒杀系统——RabbitMQ核心概念与工作模式

热门文章

  1. 多张图片转换成一个swf文件播放
  2. 拼多多非标品如何推广?场景推广合适哪些产品?
  3. ffmpeg 视频去水印
  4. 非网管工业交换机和网管工业交换机区别
  5. QuickBooks 2018 For Dummies 免积分下载
  6. w ndows7怎么设置桌面保护,Windows7屏幕保护功能失效了怎么办?
  7. 第一行代码 Android读书笔记(二)
  8. 程序员所说的「轮子」是什么东西?
  9. python画版图_关于回收站正确的说法是_____。
  10. Quartz学习记录