Python读写文件之with open()
文章目录
- 1 读文件
- 1.1 使用open()和close()
- 1.2 使用with open()
- 2 写文件
- 2.1 字符编码
- 2.2 读写方式列表
- 2.3 file object的属性
1 读文件
1.1 使用open()和close()
使用Python内置的open()函数,传入文件名和标示符:
>>> f=open(r'F:\jupyter notebook files\text files.txt','r') #标示符'r'表示读
如果文件不存在,open()函数就会抛出一个错误,并且给出错误码和详细的信息告诉你文件不存在:
>>> f=open(r'F:\jupyter notebook files\text.txt','r')
Traceback (most recent call last):File "<stdin>", line 1, in <module>
FileNotFoundError: [Errno 2] No such file or directory: 'F:\\jupyter notebook files\\text.txt'
调用read()方法可以一次读取文件的全部内容,Python把内容读到内存,用一个str对象表示:
>>> contents=f.read()
>>> print(contents)
naruto
bleach
onepiece
最后需要调用close()方法关闭文件。文件使用完毕后必须关闭,因为文件对象会占用操作系统的资源,并且操作系统同一时间能打开的文件数量也是有限的:
>>> f.close()
由于文件读写时都有可能产生IOError,一旦出错,后面的f.close()就不会调用。为了保证无论是否出错都能正确地关闭文件,我们可以使用try … finally来实现:
try:f=open(r'F:\jupyter notebook files\text files.txt','r')contents=f.read()print(contents)
finally:if f:f.close()
输出如下:
naruto
bleach
onepiece
1.2 使用with open()
每次都写close()比较繁琐,Python引入with语句,这样能够确保最后文件一定被关闭,且不用手动再调用close方法,效果和前面的try … finally是一样的。
注意:
- 1、调用read()会一次性读取文件的全部内容
with open(r'F:\jupyter notebook files\text files.txt','r') as f:contents=f.read()print(contents)
输出如下:
naruto
bleach
onepiece
- 2、调用readline()可以每次读取一行内容
with open(r'F:\jupyter notebook files\text files.txt','r') as f:a=f.readline()print(a)b=f.readline()print(b)c=f.readline()print(c)
输出如下:
narutobleachonepiece
- 3、调用readlines()一次读取所有内容并按行返回list
with open(r'F:\jupyter notebook files\text files.txt','r') as f:a=f.readlines()print(a)
输出如下:
['naruto\n', 'bleach\n', 'onepiece']
2 写文件
调用open()函数时,传入标识符’w’或者’wb’表示写文本文件或写二进制文件:
with open(r'F:\jupyter notebook files\text files.txt','w') as f:a=f.write('attack on titan\n')
要写入特定编码的文本文件,请给open()函数传入encoding参数,将字符串自动转换成指定编码。
2.1 字符编码
要读取非UTF-8编码的文本文件,需要给open()函数传入encoding参数,例如,读取GBK编码的文件:
with open(r'F:\jupyter notebook files\gbk.txt', 'r', encoding='gbk') as f:a=f.read()print(a)
输出如下:
gbk文本
遇到有些编码不规范的文件,你可能会遇到UnicodeDecodeError,因为在文本文件中可能夹杂了一些非法编码的字符。遇到这种情况,open()函数还接收一个errors参数,表示如果遇到编码错误后如何处理。最简单的方式是直接忽略:
with open(r'F:\jupyter notebook files\gbk.txt', 'r', encoding='gbk',errors='ignore') as f: #注意errors='ignore'a=f.read()print(a)
2.2 读写方式列表
2.3 file object的属性
参考文献:
python 使用 with open() as 读写文件
Python读写文件之with open()相关推荐
- python文件对象提供了3个读方法、分别是-Python读写文件模式和文件对象方法实例详解...
本文实例讲述了Python读写文件模式和文件对象方法.分享给大家供大家参考,具体如下: 一. 读写文件模式 利用open() 读写文件时,将会返回一个 file 对象,其基本语法格式如: open ( ...
- python文件读取输出-Python 读写文件中数据
1 需求 在文件 h264.txt 中的数据如图1,读入该文件中的数据,然后将第1列的地址删除,然后将数据输出到h264_out.txt中: 图1 h264.txt 数据截图 图2 输出文件 h264 ...
- python如何读写文件-Python读写文件
python读写文件是很常见的操作,而多数情况下是对纯文件的读写操作. 我们先看一下,纯文本是如何进行读写操作的. """ created by nzh Date: 20 ...
- python写文件读文件-Python 读写文件和file对象的方法(推荐)
1.open 使用open打开文件后一定要记得调用文件对象的close()方法.比如可以用try/finally语句来确保最后能关闭文件. file_object = open('thefile.tx ...
- python读写文件实例_python读写文件的简单示例
这篇文章主要为大家详细介绍了python读写文件的简单示例,具有一定的参考价值,可以用来参考一下. 感兴趣的小伙伴,下面一起跟随512笔记的小编罗X来看看吧. 首先看一个例子: # 来自www.512 ...
- python读写文件代码_Python 读写文件的操作代码
Python读写文件模式 1.r 打开只读文件,该文件必须存在. 2.r+ 打开可读写的文件,该文件必须存在. 3.w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失.若文件不存在则建立 ...
- Python读写文件(附完整模块化代码)
一.前言 Python读写文件的代码有许多形式,虽然十分简单,但是每次使用时都需要查找才能用上.所以鄙人用自己贫乏的Python功力编写了一个读写模块的模板,希望最大化方便有文件读写需求的朋友. 二. ...
- python 读写文件 另存为_python读写文件(五)
今天继续分享python读写文件. 首先介绍一个新的函数open(),这个函数是干什么的呢?在python里面可以用open函数来打开文件.要用open函数打开一个文件,就是要向它传递一个字符串路径, ...
- python怎么读写文件-python读写文件
python读写文件是很常见的操作,而多数情况下是对纯文件的读写操作. 我们先看一下,纯文本是如何进行读写操作的. """ created by nzh Date: 20 ...
- python读写文件的语句_用Python读写文件指南
用Python读写文件(指南) [TOC] 使用Python最常见的任务之一是读取和写入文件.无论是写入简单的文本文件,读取复杂的服务器日志,甚至是分析原始字节数据,所有这些情况都需要读取或写入文件. ...
最新文章
- python 调用函数 开销_参数中带有函数的Python日志记录开销
- Java IDE——Eclipse下载与安装
- POJ 2240 Arbitrage(SPFA判正环)
- ESXi主机下的常用日志
- 性能测试:基础(1)
- gdb学习汇编(三)
- mysql主从复制原理详解_深入研究MySQL(三)、主从复制原理及演示
- 蓝桥杯官网 试题 PREV-94 历届真题 矩阵计数【第十届】【决赛】【研究生组】【C++】解法
- TextView 倾斜属性
- Azure云服务器搭建
- UI交互设计教程全套视频合集:轻松玩转photoshop抠图
- 基于内容的图像检索引擎(以图搜图)
- 2022年下半年软考报名时间陆续公布(持续更新)
- web全栈工程师技能介绍
- html网站设计项目心得,网页设计制作心得体会,网页设计实训报告步骤
- 遇见狂神书说:JavaWeb保姆级教程
- 陪审团(01背包, 难)
- 亚丁号云控之云控设备
- Python实例10: 绘制“霍兰德人格分析雷达图”
- 好的计算机科学导论教材,对计算机科学导论教材的探讨
热门文章
- 广和通创新探索5G+AI领域,助力工业智能机器人“聪明”上线
- 06.大数据技术之Hbase
- PyQt5 | 手把手教你YOLOv5添加PyQt页面
- Word中试卷各选项提取到Excel对应列
- 推荐7个好用的平面设计网站,优秀素材全靠它
- linux tmp 不自动清理,Linux tmp目录自动清理总结
- 自定义View之onMeasure()方法
- JavaScript去重
- java class equals_Java中equals方法的用法
- Android内存异常机制(用户空间)_NE