Python文件读取关闭和写入
读取文件的三个方法:read()、readline()、readlines()。均可接受一个方法参数用以限制每次读取的数据量,但通常不使用。
read()
优点:读取整个文件,将文件内容放到一个字符串变量中。
劣势:如果文件非常大,尤其是大于内存时,无法使用read()方法。
总结:不适用于读取大文件
readline()
优点:readline()方法每次读取一行;返回的是一个字符串对象,保存当前行的内存,不占用内存
缺点:比readlines慢得多
包含知识点
- 当你每次调用readline()方法时,你的文件指针就会指向当前行尾部,一个换行符 \n 占两位,一个中文也是
- 读取到最后一行之后再调用readline()就会返回空,结束循环
readlines()
特点:一次性读取整个文件;自动将文件内容分析成一个行的列表
包含知识点
- readlines()读取所有行然后把它们作为一个字符串列表返回
- 返回的每一行内容包含换行符
文件关闭:
由于文件读写时都有可能产生 IOError ,一旦出错,后面的 f.close() 就不会调用。所以,为了保证无论是否出错都能正确地关闭文件,我们可以使用 try ... finally 来实现:
try:f = open('/path/to/file', 'r')print(f.read())
finally:if f:f.close()
每次这样写太繁琐了,所以Python引入了 with open() 来自动调用close()方法,无论是否出错
open() 与 with open() 区别
1、open需要主动调用close(),with不需要
2、open读取文件时发生异常,没有任何处理,with有很好的处理上下文产生的异常
with open()同时操作多个文件
with open("test/test.py", 'r') as f1, open("test/test2.py", 'r') as f2:print(f1.read())print(f2.read())
写文件
写文件和读文件是一样的,唯一区别是调用 open() 函数时,需要将 mode 参数改成可写的模式,如上面的表格所示
f = open("test/test.py", "a+")
f.write("test")
f.writelines("polo")
print(f.read())
f.close()
写文件的原理
当我们写文件时,操作系统往往不会立刻把数据写入磁盘,而是放到内存缓存起来,空闲的时候再慢慢写入。
只有调用 close() 方法时,操作系统才保证把没有写入的数据全部写入磁盘。忘记调用close()
的后果是数据可能只写了一部分到磁盘,剩下的丢失了。
所以,还是用with语句好鸭!
关于字符编码
要写入特定编码的文本文件,请给 open() 函数传入 encoding 参数,将字符串自动转换成指定编码,默认 encoding=None
例如,读取utf-8编码的文件:
f = open('test/utf8.txt', 'r', encoding='utf-8')
print(f.read())
遇到有些编码不规范的文件,你可能会遇到 UnicodeDecodeError ,因为在文本文件中可能夹杂了一些非法编码的字符。
遇到这种情况, open() 函数还接收一个 errors 参数,默认是 errors=None 表示如果遇到编码错误后如何处理。最简单的方式是直接忽略。
f = open('test/utf8.txt', 'r', encoding='utf-8', errors='ignore')
os.open()
格式
os.open(file, flags[, mode])
参数
- file:要打开的文件
- flags:该参数可以是以下选项,多个使用 "|" 隔开,只列常用的:
- os.O_RDONLY: 以只读的方式打开
- os.O_WRONLY: 以只写的方式打开
- os.O_RDWR : 以读写的方式打开
- os.O_APPEND: 以追加的方式打开
- os.O_CREAT: 创建并打开一个新文件
- 划重点!!!不建议使用os.open,还是用with open()
Python文件读取关闭和写入相关推荐
- python读取文件读不出来-python文件读取失败怎么处理
在读取文件时候比如读取 xxx.csv 时候 可能报编码错误 类似于 'xxx' codec can't decode byte 0xac in position 211: illegal multi ...
- 自动化神器啊,Python 批量读取身份证信息写入 Excel
大家好,今天分享一个实用技能,利用 Python 批量读取身份证信息写入 Excel. 喜欢记得收藏.关注.点赞. 注:文末提供完整版代码.技术交流方式 读取 以图片形式的身份证为例,信息读取我们使用 ...
- python文件读取操作练习题(统计单词)
python文件读取操作练习题(统计单词) 学习路线:python的文件读取基础入门(read(),readlines(),with.open()) ->python文件读取操作练习题(统计单词 ...
- python 文件读取错误之FileNotFoundError: [Errno 2] No such file or directory:,顺便学习斜杠/和反斜杠\的用法
python 文件读取错误之FileNotFoundError: [Errno 2] No such file or directory:,顺便学习斜杠/和反斜杠\的用法: 最近学习文件读取和中文分词 ...
- Python 文件读取与写入操作方法
读取文件: F.read([size]) #size为读取的长度,以byte为单位 F.readline([size]) #读一行,如果定义了size,有可能返回的只是一行的一部分 F.readl ...
- python文件读取写入元组_python文件和元组
python文件操作 相较于java,Python里的文件操作简单了很多 python 获取当前文件所在的文件夹: os.path.dirname(__file__) 写了一个工具类,用来在当前文件夹 ...
- python文件读取写入元组_python文件的读写
1.使用open内置函数打开一个文件 file:相对路径或者绝对路径 mode:文件的模式. r 只读 w只写 b:二进制 t:以文本形式打开等等 encoding:编码方式,windows下 ...
- python文件读取写入实践_python文件写入实例分析
本文实例讲述了python文件写入的用法.分享给大家供大家参考.具体分析如下: Python中wirte()方法把字符串写入文件,writelines()方法可以把列表中存储的内容写入文件. f=fi ...
- 一文贯通python文件读取
不论是数据分析还是机器学习,乃至于高大上的AI,数据源的获取是所有过程的入口. 数据源的存在形式多为数据库或者文件,如果把数据看做一种特殊格式的文件的话,即所有数据源都是文件.获得数据,就是读取文件的 ...
最新文章
- C语言结束输入(两种方法)
- 8核32g mysql性能_MySQL性能优化之参数配置
- undefined reference to “boost” in Qt—Ubuntu
- Dom4j操作XML
- 休眠事实:集成测试策略
- Hbase伪分布式安装
- [翻译]Java 核心技术(第7版)(3)
- JAVA-1007. 素数对猜想 (20)
- 线性同余法随机数生成
- python三维点云投影(二)
- SQL SERVER数据库中勒索病毒 SQL数据库中病毒恢复数据
- pt和px的区别和相互转换关系
- android手机账号什么意思,苹果手机怎么改id账号 id账号是什么
- XCTF-Cat+Bug
- 微信小游戏Laya引擎声音Bug的解决方案
- 初学狄克斯特拉算法~(待提高)
- 循环-05. 兔子繁衍问题(15)
- INTERVAL函数的使用
- jieba.cut 和jieba.posseg
- 数据结构与算法[LeetCode]——sqrt(x)