点击上方「蓝字」关注我们

Python中对文件的读写

读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘。

读写文件就是请求操作系统打开一个文件对象(通常称为文件描述符),然后,通过操作系统提供的接口从这个文件对象中读取数据(读文件),或者把数据写入这个文件对象(写文件)

1.open() 方法

完整的语法格式为:open(file,mode='r',buffering=-1,encoding=None,errors=None, newline=None, closefd=True, opener=None)     参数说明:file: 必需,文件路径(相对或者绝对路径)

mode: 可选,文件打开模式

buffering: 设置缓冲

encoding: 一般使用utf8

errors: 报错级别

newline: 区分换行符

closefd: 传入的file参数类型

opener:

例子:

try:    f = open('xxx.txt', 'r')    print(f.read())finally:    if f:        f.close()

说明:

  由于文件读写时都有可能产生IOError,一旦出错,后面的f.close()就不会调用。所以,为了保证无论是否出错都能正确地关闭文件,我们可以使用try … finally,不管任何情况都会执行close() 方法来关闭文件

2.使用with open来读写文件

with open(file, 'r' ,encoding="utf-8") as f:    print( f.read() )

说明:使用with open 会自动帮你关闭文件,就不需要繁琐的每次都去关闭文件,跟上面的try finally 作用一样。

encoding:指定文件的编码格式,如果编码格式不对的话会出现乱码的情况

read() 一次性读取整个文件。

1.调用read()会一次性读取文件的全部内容,如果文件有10G,内存就爆了。2.要保险起见,可以反复调用read(size)方法,每次最多读取size个字节的内容。例如,read(1024) 每次读取1024个字节的数据内容。3.调用readline()可以每次读取一行内容,调用readlines()一次读取所有内容并按行返回list。因此,要根据需要决定怎么调用。4.如果文件很小,read()一次性读取最方便;如果不能确定文件大小,反复调用read(size)比较保险;如果是配置文件,调用readlines()最方便

3.使用with open 来入写文件

写文件和读文件是一样的,唯一区别是调用open()函数时,传入标识符’w’或者’wb’表示写文本文件或写二进制文件:

with open(file, 'w') as f:    f.write('Hello, world!')

要写入特定编码的文本文件,请给open()函数传入encoding参数,将字符串自动转换成指定编码字符编码。

4.打开二进制文件

前面讲的默认都是读取文本文件,并且是UTF-8编码的文本文件。要读取二进制文件,比如图片、视频等等,用’rb’模式打开文件即可:

with open("xxx.jpg", 'rb') as f:    print(f.read())

如果要对二进制文件进行写入要用rb+模式。打开文件的模式附图:

type info
r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
rb 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。
这是默认模式。一般用于非文本文件如图片等。
r+ 打开一个文件用于读写。文件指针将会放在文件的开头。
rb+ 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。
一般用于非文本文件如图片等。
w 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头
开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb 以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,
并从开头开始编辑,即原有内容会被删除。如果该文件不存在,
创建新文件。一般用于非文本文件如图片等。
w+ 打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始
编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb+ 以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,
并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
a 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
ab 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
a+ 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
ab+ 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

file对象:

序号 方法及描述
1 file.close()关闭文件。关闭后文件不能再进行读写操作。
2 file.write(str)将字符串写入文件,返回的是写入的字符长度。
3  file.read([size])从文件读取指定的字节数,如果未给定或为负则读取所有。
4  file.readline([size])读取整行,包括 "\n" 字符。
5  file.readlines([sizeint])读取所有行并返回列表,若给定sizeint>0,则是设置一次读多少字节,这是为了减轻读取压力。

精彩推荐大厂的面试官都感兴趣数据结构!Python3.8.3最新安装教程(超详细)2020 年 7 月编程语言Python又霸榜??

file watchers怎么默认打开_Python读写文件怎么和我之前学的不一样?相关推荐

  1. file watchers怎么默认打开_python怎么打印字符

    print() 方法用于打印输出,最常见的一个函数. 在 Python3.3 版增加了 flush 关键字参数. print 在 Python3.x 是一个函数,但在 Python2.x 版本不是一个 ...

  2. c语言创建一个文件函数,c语言文件读写函数 用C语言的函数创建、打开和读写文件...

    C语言文件读写结构体里面的数据怎样存到磁盘文件上 c语言对同一个文件进行读写(r+) 编写程序,将文本文件c.txt中的所有小写字母转换成相应的大写字母,其他一.标准文件的读写 1.文件的打开 fop ...

  3. python以读写方式打开文件_python读写文件操作详细介绍【传智播客】

    Python文件的打开或创建可以使用函数open().该函数可以指定处理模式,设置打开的文件为只读.只写或可读写状态.open()的声明如下所示. open(file, mode='r', buffe ...

  4. python打开文件写文件乱码_Python读写文件乱码问题

    对开发者来说,最恼人的问题之一莫过于读写文件的时候,由于编码千差万别,出现乱码问题.好难快速解决啊... 最近我也遇到了这样的问题,经研究,把大致的解决思路拿出来共享. 1. python中习惯首先声 ...

  5. python以读写方式打开文件_Python读写文件

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

  6. python3打开文件的代码_Python读写文件的代码示例

    本篇文章给大家带来的内容是关于Python读写文件的代码示例,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助 一.读取文件 读取文件步骤: 1.找到文件 2.打开文件 3.读取文件内容 ...

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

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

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

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

  9. python的文件读写方法有哪些_python读写文件的方法有哪些

    python读写文件的方法有哪些 发布时间:2020-08-07 11:58:05 来源:亿速云 阅读:87 作者:小新 这篇文章主要介绍python读写文件的方法有哪些,文中介绍的非常详细,具有一定 ...

最新文章

  1. qemu使用实例和常用参数
  2. js判断ipad还是安卓_还考虑iPad?荣耀平板V6麒麟985支持5G才3000多元
  3. mybatis表关联彻底理解
  4. 如果可能我们还是做好基础的事情吧
  5. 数据预处理|关于标准化和归一化的一切
  6. 获取地址栏URL中参数, getQuerySting()方法
  7. nodejs代码细节效率对比
  8. 花点时间了解消息,句柄和窗口
  9. Windows Server 2003域和活动目录
  10. 【渝粤教育】电大中专市场营销管理20作业 题库
  11. esx4.0 tpm模块初始化失败
  12. python中文教程github_GitHub - Virile-Tao/python_data_structures_and_algorithms: Python 中文数据结构和算法教程...
  13. 小白文件管理器 无法与服务器建立联系,小白文件管理器怎么用
  14. SSDP协议内容解析
  15. 等保三级密码技术应用要求 GM/T 0054-2018
  16. layim框架+websocket即时通讯功能
  17. Python|猜球博弈
  18. XILINX封装FBG与FFG区别
  19. POI解决读入Excel内存溢出
  20. 怎么就那么多SlectObject和DeleteObject···········

热门文章

  1. 远程工具连接mysql备份_MySQL远程连接 备份还原
  2. html5标签详解,HTML5中figcaption标签用法详解
  3. django登录连接html,Django——登录功能(连接mysql)
  4. oracle创建表空间blocksize,oracle表空间大小的限制和DB_BLOCK_SIZE的概念
  5. 计算机基础及wps office应用_自考本科计算机应用基础考试大纲
  6. python单例模式解析_Python下简易的单例模式详解
  7. 光学模拟 Android,基于Android的光学字符识别研究与实现
  8. linux nfs系统客户端,Linux系统中挂载共享目录NFS文件系统客户端安装与配置
  9. nginx 指向一个文件夹_弄懂nginx的语法就是这么简单
  10. python对浏览器的常用操作有哪些_Python Selenium中对象常用操作方法