Python的文件操作,open、with open
目录
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相关推荐
- python写文件追加 按行追加_你真的会用python进行文件操作吗
本篇文章主要比较系统的介绍了python中文件操作,以及在在使用中需要注意的问题. 什么是文件 文件是系统存储区域的一个命名位置,用来存储一些信息,便于后续访问.能够在非易失性存储器中实现持续性存储, ...
- Python基础-文件操作
Python基础-文件操作 1.文件的打开和关闭 # 1.打开文件 # 默认r模式 只读 文件不存在,报错 # f = open('a.txt')# w模式 写权限 # 如果文件不存在,就会创建文件 ...
- python的文件操作、模块操作、os模块、time、datatime模块以及模块的制作
Day12新手小白学python 第十二节 python的文件操作.模块操作.os模块.time.datatime模块以及模块的制作 目录 Day12新手小白学python 前言 一.文件打开关闭 二 ...
- 15 python的文件操作
一.文件打开 文件(file) 通过Python程序来对计算机中的各种文件进行增删改查的操作,文件也叫I/O(Input/Output) 文件的操作步骤 打开文件 对文件进行各种操作(读.写)然后保存 ...
- python通过内置的什么函数打开一个文件_利用python进行文件操作
这篇文章主要介绍了如何利用python进行文件操作,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下 什么是文件 文件是系统存储区域的一个命名位置,用来存储一些信息,便于后续访问.能够在非 ...
- Python之文件操作_读取_编码_os模块
目录 前言 一.文件基本操作 1.什么是文件 2.操作文件的步骤 3.文件的路径 4.open函数操作权限总结 5.文件读取 6.with-open-as 7.文件定位读取 8.文件编码 二.OS模块 ...
- python对文件操作-python中文件操作的其他方法
Python中文件操作的一般方法,包括打开,写入,关闭.本文中介绍下python中关于文件操作的其他比较常用的一些方法. 首先创建一个文件poems: p=open("poems" ...
- python:文件操作
一.文件操作 1.介绍 f:变量,f_obj,file,f_handler.....文件句柄 open window的系统功能 windows默认编码方式:gbk',linux默认编码方式是 ...
- Python基础--文件操作
文件操作通常用来存储程序结果,以便下次可以直接使用,不必要重新运行一遍.文件操作最基本的三步:1.打开文件或者新建文件 2. 读或者写 3 关闭文件流保存数据. Python 访问模式如下: 打开 ...
- python对文件的读操作有哪些方法-Python之文件操作:文件的读写
一.open函数:对文件读写之前,需要先打开文件,获取文件句柄 注意:open() file() 尽量使用open(),Python3以后不支持file()了 1.open(file_name[,ac ...
最新文章
- 数据科学+python+R+数据库+机器学习+(速查表)cheat sheets大全
- oracle经常使用函数(1)
- Kubernetes故障问题
- oracle 更改用户状态,密码
- mysql导出数据库报错,navicat 导入导出数据库报错的解决
- 文件类的操作 File c# 1614823687
- mybatisplus多表关联查询_Excel、MySQL、PowerBI、Python来告诉你 数据关联与联合不一样
- Docker 学习4 Docker容器虚拟化网络概述
- python的规模有多大_Python项目可以有多大?最多可以有多少行代码?
- 职场必杀技之职场英语
- gc0329曝光时间设置
- 斐尔可圣手二代蓝牙设置问题
- linux交互式脚本编写,谢烟客---------Linux之bash脚本编程---用户交互
- EBS-自动获取/创建CCID
- angularjs 关于Module 'ngLocale' is not available! is misleading
- 发现一个国外用来做参与式及知识迁移的网络课件 messenger-education
- 手机投屏电视html,oppor17手机投屏电视的详细操作步骤
- 微服务拆分原则之 AKF
- 安徽科技学院 信网学院网络文化节 丁舒
- Windows下本地路由表