文章目录

  • 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. python 调用函数 开销_参数中带有函数的Python日志记录开销
  2. Java IDE——Eclipse下载与安装
  3. POJ 2240 Arbitrage(SPFA判正环)
  4. ESXi主机下的常用日志
  5. 性能测试:基础(1)
  6. gdb学习汇编(三)
  7. mysql主从复制原理详解_深入研究MySQL(三)、主从复制原理及演示
  8. 蓝桥杯官网 试题 PREV-94 历届真题 矩阵计数【第十届】【决赛】【研究生组】【C++】解法
  9. TextView 倾斜属性
  10. Azure云服务器搭建
  11. UI交互设计教程全套视频合集:轻松玩转photoshop抠图
  12. 基于内容的图像检索引擎(以图搜图)
  13. 2022年下半年软考报名时间陆续公布(持续更新)
  14. web全栈工程师技能介绍
  15. html网站设计项目心得,网页设计制作心得体会,网页设计实训报告步骤
  16. 遇见狂神书说:JavaWeb保姆级教程
  17. 陪审团(01背包, 难)
  18. 亚丁号云控之云控设备
  19. Python实例10: 绘制“霍兰德人格分析雷达图”
  20. 好的计算机科学导论教材,对计算机科学导论教材的探讨

热门文章

  1. 广和通创新探索5G+AI领域,助力工业智能机器人“聪明”上线
  2. 06.大数据技术之Hbase
  3. PyQt5 | 手把手教你YOLOv5添加PyQt页面
  4. Word中试卷各选项提取到Excel对应列
  5. 推荐7个好用的平面设计网站,优秀素材全靠它
  6. linux tmp 不自动清理,Linux tmp目录自动清理总结
  7. 自定义View之onMeasure()方法
  8. JavaScript去重
  9. java class equals_Java中equals方法的用法
  10. Android内存异常机制(用户空间)_NE