文章目录

  • 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()相关推荐

  1. python文件对象提供了3个读方法、分别是-Python读写文件模式和文件对象方法实例详解...

    本文实例讲述了Python读写文件模式和文件对象方法.分享给大家供大家参考,具体如下: 一. 读写文件模式 利用open() 读写文件时,将会返回一个 file 对象,其基本语法格式如: open ( ...

  2. python文件读取输出-Python 读写文件中数据

    1 需求 在文件 h264.txt 中的数据如图1,读入该文件中的数据,然后将第1列的地址删除,然后将数据输出到h264_out.txt中: 图1 h264.txt 数据截图 图2 输出文件 h264 ...

  3. python如何读写文件-Python读写文件

    python读写文件是很常见的操作,而多数情况下是对纯文件的读写操作. 我们先看一下,纯文本是如何进行读写操作的. """ created by nzh Date: 20 ...

  4. python写文件读文件-Python 读写文件和file对象的方法(推荐)

    1.open 使用open打开文件后一定要记得调用文件对象的close()方法.比如可以用try/finally语句来确保最后能关闭文件. file_object = open('thefile.tx ...

  5. python读写文件实例_python读写文件的简单示例

    这篇文章主要为大家详细介绍了python读写文件的简单示例,具有一定的参考价值,可以用来参考一下. 感兴趣的小伙伴,下面一起跟随512笔记的小编罗X来看看吧. 首先看一个例子: # 来自www.512 ...

  6. python读写文件代码_Python 读写文件的操作代码

    Python读写文件模式 1.r 打开只读文件,该文件必须存在. 2.r+ 打开可读写的文件,该文件必须存在. 3.w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失.若文件不存在则建立 ...

  7. Python读写文件(附完整模块化代码)

    一.前言 Python读写文件的代码有许多形式,虽然十分简单,但是每次使用时都需要查找才能用上.所以鄙人用自己贫乏的Python功力编写了一个读写模块的模板,希望最大化方便有文件读写需求的朋友. 二. ...

  8. python 读写文件 另存为_python读写文件(五)

    今天继续分享python读写文件. 首先介绍一个新的函数open(),这个函数是干什么的呢?在python里面可以用open函数来打开文件.要用open函数打开一个文件,就是要向它传递一个字符串路径, ...

  9. python怎么读写文件-python读写文件

    python读写文件是很常见的操作,而多数情况下是对纯文件的读写操作. 我们先看一下,纯文本是如何进行读写操作的. """ created by nzh Date: 20 ...

  10. python读写文件的语句_用Python读写文件指南

    用Python读写文件(指南) [TOC] 使用Python最常见的任务之一是读取和写入文件.无论是写入简单的文本文件,读取复杂的服务器日志,甚至是分析原始字节数据,所有这些情况都需要读取或写入文件. ...

最新文章

  1. 通过改进算法来优化程序性能的真实案例(Ransac)
  2. 平衡树 - treap
  3. 深度学习之误差反向传播法
  4. 实验八 分析一个奇怪的程序
  5. oracle数据库sid已存在,Oracle SID在本机下已经存在,请指定一个不同的SID”的解决方法...
  6. 都是套路:高并发系统的降级特技
  7. MySQL 中存储时间的最佳实践
  8. linux中mysql数据库启用日志记录_MYSQL启用日志,和查看日志
  9. BeetleX网关非法Url请求拦截插件
  10. Java学习之数据类型的转换
  11. android百度定位没反应,百度定位回调无反应,第一次能回调到数据,第二次无反应...
  12. spine骨骼动画基础一文通
  13. Geoda空间自相关分析—局部Moran‘I指数(运用GeoDa制作Lisa图)
  14. springboot-jpa-querydsl
  15. 11g OCM 考试感悟
  16. js判断是否微信登陆
  17. Python列表解析式-生成器
  18. Excel精选28个实用技巧实例学习
  19. 当android调试遇到ADB server didn't ACK以及顽固的sjk_daemon进程 .
  20. linux iio 设备驱动,Linux设备驱动之IIO子系统——IIO框架数据读取,linuxiio

热门文章

  1. 我用YOLOv5做情感识别
  2. Illustrator尺寸标注扩展插件Measure(支持AI CC 2015~2019)
  3. 基础十三:面向对象二
  4. 【文献阅读与想法笔记13】 Unprocessing Images for Learned Raw Denoising
  5. 毒鸡汤 舔狗语录PHP源码
  6. 车牌识别应用搭建(含模型和源码)
  7. 百度AI人脸识别接口调用
  8. Map集合的四种遍历方式
  9. 关于事务管理的理解和Spring事务管理详解
  10. 又一随机视频聊天网站内侧了,地址为:http://www.17ouyu.com/