目录

1、什么是文件

2、两种重要的文件类型

2.1  文本文件的优缺点

2.2  二进制文件的优缺点

2.3  转换

3、文件的缓冲机制

3.1  文件缓冲区

3.2  缓冲机制的好处

4、文件基本操作

4.1  打开文件(open)

4.2.1  mode: 指定打开的文件方式 (str)=>text,bytes

4.3.1  buffering:指定缓存方式(int)

4.4.1  encoding: 文件的编码方式( str)

​编辑4.5.1 小练习

4.2  关闭文件-用with语句打开(with open)

4.2.1  读取文件内容

4.2.2  小练习

4.2.3  文件对象其他方法


1、什么是文件

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

2、两种重要的文件类型

文本文件(Text File):文本文件是可直接阅读的,使用记事本打开即可看到文件的内容。

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

2.1  文本文件的优缺点

优点:

输出内容友好,不需要手动转换。

缺点:

一个字符占一个字节,文件占用的存储空间较多,读写时需要转换(内存->显示), 访问的时效率不高 。

2.2  二进制文件的优缺点

优点:

二进制文件中的数据与数据的内存中的 表现形式一致。二进制文件在存储数据 时非常紧凑,占用存储空间较少;在读 写时不需要进行转换,具有较高的时间效率。

缺点:

二进制文件无法直接以字符形式输出,必须 要经过一个转换过程。

2.3  转换

bytes 转换:

bytes->str : decode('utf8')

str 转换:

str->bytes: encode('utf8')

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

3、文件的缓冲机制

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

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

3.1  文件缓冲区

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

3.2  缓冲机制的好处

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

4、文件基本操作

4.1  打开文件(open)

  • file : 要打开的文件名( str )
  • mode: 打开文件的方式( str ) => text, bytes
  • encoding: 文件编码方式(str)
  • errors: 当发生编码错误时的处理方式(str) --- 'ignore'或'strict'(默认)
  • buffering: 缓存方式 ( int)
>>> fd = open("gbk.txt",encoding="gbk")
>>> fd.read()
'你好,你好\n'
>>> fd = open("gbk.txt",'w',encoding="gbk")
>>> fd.write("这还是你")
4
>>> fd.flush()

4.2.1  mode: 指定打开的文件方式 (str)=>text,bytes

>>> fp = open("hyrz2.txt", 'ab')
>>> fp.write(b"ddd\n")
4
>>> fp.flush()

4.3.1  buffering:指定缓存方式(int)

  •         0  实时写入,只能二进制模式时
  • 1 行缓存,只能文本模式时
  • n 设置缓冲区大小为n*4096字节,溢出后追加到文件中

4.4.1  encoding: 文件的编码方式( str)

常见编码:

4.5.1 小练习

从网络上去下载图片保存到本地。

import requests
url = "http://www.pp3.cn/uploads/20120713j/818.jpg"
imr = requests.get(url)
imr2 = imr.content
with open("图片.jpg","wb") as img:img.write(imr2)

4.2  关闭文件-用with语句打开(with open)

with  open 相较于open,with open 用完时打开的文件会被自动回收。with语句块的代码执行完成之后,会自动关闭资源,回收资源--fp.close(),自动调用close。

4.2.1  读取文件内容

方式 说明 结果类型
f.tell() 文件光标->(字节位置),告诉光标现在所在的位置 整数 in
f.seek(cookie, whence=0)

移动光标位置

cookie=> 偏移量

whence=> 相对位置

(0-> 开始, 1->当前,2->末)

None 注意:

1、2只能用b模式打开才可以

fp 文件对象 IOWrapper,可迭代对象
fp.readlines()  从当前的位置回到末尾,每一行作为一个元素返回(list)  列表 list
f.read() 返回当前到文末(字符串),可指定字符数    字符串 str
f.readline()  返回当前位置到行末的信息 字符串 str
>>> fp.read()
'qdqd\n'
>>> fp.read()
''
>>> fp.seek(0)
0
>>> fp.read()
'wewew\nqdqd\n'
>>> fp.seek(1)
1
>>> fp.read()
'ewew\nqdqd\n'
>>> 

fp.seek(cookie, whence=0),cookie---偏移量  以字节为单位,whence-- 相对位置   0相对于当开始   1相对于当前  2--》末尾 ,末尾还有一个换行符。

>>> fp.read()
'qdqd\n'
>>> fp.read()
''
>>>
第二次读不到东西

fp.read()每次读写从光标的位置往后读写后(str)。

4.2.2  小练习

准备一个example.txt文件,里面随便写入些内容(如一首歌词)。

# 读前5行。
# 读全文
# 读取最后12字节=> str格式
# 读取最后4个汉字=> str格式
with open('example.txt', encoding='utf-8')as f:# 读前五行print("前五行".center(20,"-"))for i in range(5):print(f.readline().strip())# 读全文print("全文".center(20, "-"))f.seek(0)k = f.read()print(k)print("-".center(20, "-"))with open("example.txt",'br')as r:#读取最后12字节print("最后12字节:",r.read(r.seek(-12, 2)).decode("utf-8") )
# 最后4个汉字(一个汉字等于三字节,最后四个汉字,取最后12字节)print("最后4个汉字:", r.read(r.seek(-12, 2)).decode("utf-8"))

4.2.3  文件对象其他方法

Python的文件操作,open、with open相关推荐

  1. python写文件追加 按行追加_你真的会用python进行文件操作吗

    本篇文章主要比较系统的介绍了python中文件操作,以及在在使用中需要注意的问题. 什么是文件 文件是系统存储区域的一个命名位置,用来存储一些信息,便于后续访问.能够在非易失性存储器中实现持续性存储, ...

  2. Python基础-文件操作

    Python基础-文件操作 1.文件的打开和关闭 # 1.打开文件 # 默认r模式 只读 文件不存在,报错 # f = open('a.txt')# w模式 写权限 # 如果文件不存在,就会创建文件 ...

  3. python的文件操作、模块操作、os模块、time、datatime模块以及模块的制作

    Day12新手小白学python 第十二节 python的文件操作.模块操作.os模块.time.datatime模块以及模块的制作 目录 Day12新手小白学python 前言 一.文件打开关闭 二 ...

  4. 15 python的文件操作

    一.文件打开 文件(file) 通过Python程序来对计算机中的各种文件进行增删改查的操作,文件也叫I/O(Input/Output) 文件的操作步骤 打开文件 对文件进行各种操作(读.写)然后保存 ...

  5. python通过内置的什么函数打开一个文件_利用python进行文件操作

    这篇文章主要介绍了如何利用python进行文件操作,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下 什么是文件 文件是系统存储区域的一个命名位置,用来存储一些信息,便于后续访问.能够在非 ...

  6. Python之文件操作_读取_编码_os模块

    目录 前言 一.文件基本操作 1.什么是文件 2.操作文件的步骤 3.文件的路径 4.open函数操作权限总结 5.文件读取 6.with-open-as 7.文件定位读取 8.文件编码 二.OS模块 ...

  7. python对文件操作-python中文件操作的其他方法

    Python中文件操作的一般方法,包括打开,写入,关闭.本文中介绍下python中关于文件操作的其他比较常用的一些方法. 首先创建一个文件poems: p=open("poems" ...

  8. python:文件操作

    一.文件操作 1.介绍 f:变量,f_obj,file,f_handler.....文件句柄 open      window的系统功能 windows默认编码方式:gbk',linux默认编码方式是 ...

  9. Python基础--文件操作

    文件操作通常用来存储程序结果,以便下次可以直接使用,不必要重新运行一遍.文件操作最基本的三步:1.打开文件或者新建文件  2. 读或者写  3 关闭文件流保存数据. Python 访问模式如下: 打开 ...

  10. python对文件的读操作有哪些方法-Python之文件操作:文件的读写

    一.open函数:对文件读写之前,需要先打开文件,获取文件句柄 注意:open() file() 尽量使用open(),Python3以后不支持file()了 1.open(file_name[,ac ...

最新文章

  1. 数据科学+python+R+数据库+机器学习+(速查表)cheat sheets大全
  2. oracle经常使用函数(1)
  3. Kubernetes故障问题
  4. oracle 更改用户状态,密码
  5. mysql导出数据库报错,navicat 导入导出数据库报错的解决
  6. 文件类的操作 File c# 1614823687
  7. mybatisplus多表关联查询_Excel、MySQL、PowerBI、Python来告诉你 数据关联与联合不一样
  8. Docker 学习4 Docker容器虚拟化网络概述
  9. python的规模有多大_Python项目可以有多大?最多可以有多少行代码?
  10. 职场必杀技之职场英语
  11. gc0329曝光时间设置
  12. 斐尔可圣手二代蓝牙设置问题
  13. linux交互式脚本编写,谢烟客---------Linux之bash脚本编程---用户交互
  14. EBS-自动获取/创建CCID
  15. angularjs 关于Module 'ngLocale' is not available! is misleading
  16. 发现一个国外用来做参与式及知识迁移的网络课件 messenger-education
  17. 手机投屏电视html,oppor17手机投屏电视的详细操作步骤
  18. 微服务拆分原则之 AKF
  19. 安徽科技学院 信网学院网络文化节 丁舒
  20. Windows下本地路由表

热门文章

  1. 常微分方程——非齐次线性微分方程与常数变易法
  2. [正则表达式]可以为空值,不为空则要验证格式
  3. Jstack查询线程堆栈
  4. JSON数据 与 JSON数据的使用
  5. vue姓名筛选模糊搜索
  6. 360安全浏览器极速模式对rem失效
  7. PHPMyWind支持ppt上传
  8. fmdb的一些基本的用法
  9. DjangoUeditor添加与配置
  10. 120年奥运历史数据分析